В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
Viktor110701
Viktor110701
15.01.2020 15:13 •  Информатика

Задача1. Составить процедуру нахождения квадрата суммы
действительных чисел и квадратного корня из этой суммы.
Используемые идентификаторы – обозначения:
a, b, c – данные числа;
z – сумма чисел;
x – квадрат суммы;
y – корень из суммы.
x1,y1- фактические параметры.
Программа:
program z1;
var x1,y1: real;
procedure expres ( a, b, c :real; var x, y: real);
var z: real;
begin
z:= a+b+c;
x:= sqr(z); {квадрат z}
y:= sqrt(z); {корень из z}
end;

{Основная программа}
begin
expres(25.4, 44.6, 30, x1, y1);
writeln( x1, y1);
end.

Формальные входные параметры a, b, c принимают значения фактических параметров a=25.4, b=44.6, c=30. При этих значениях выполняется процедура. Результатом выполнения процедуры являютcя x, y , которые передают свои значения соответствующим фактическим параметрам x1, y1. Таким образом, в основной программе будем иметь x1= 10000, y1= 10.

Задача 2. Оформим в виде процедуры SUMMA вычисление суммы 1+2+3+…+n
и произведения 1*2*3*…*n целых чисел.

Используемые идентификаторы – обозначения:
n – количество чисел;
SUM – сумма чисел;
PR – произведение чисел:
i – параметр цикла;
k, x, y – формальные параметры.

Программа:

program z2;
var n: integer;
PR,SUM: real;

procedure SUMMA (k: integer; var x, y: real); {начало процедуры}
var i: integer;
begin
x:=0; y:=1;
for i:=1 to k do
begin
x:=x+i;
y:=y*i;
end;
end; {конец процедуры}

{Основная программа}
begin
write (‘введите значение n: ’);
read (n);
SUMMA (n, SUM, PR);
writeln(‘SUM=’,SUM:5);
writeln(‘PR=’,PR:5);
end.

Отладочные данные:
Введите значение n : 10
SUM = 5.500000E+01
PR = 3.628800E+06

Задача 3. Даны действительные числа k, n, m. Получить:
f(-k, 2n, n-m) + f(1, 2, 3)
 , где f(a, b, c) = a2 + b2 + c2 - a - c.
f(m, k, n)
Для вычисления функции составьте под программу - функцию.

Задача 4. Даны действительные числа, среди которых есть положительные, отрицательные и ноль. Вычислите произведение чисел, отличных от нуля, используя процедуру Произв. и сумму отрицательных чисел, используя процедуру Сумм.

Показать ответ
Ответ:
KOMAPyKOTA
KOMAPyKOTA
18.10.2020 13:49
//Pascal ABC.NET v3.1 сборка 1172

Var
 s,sr:string;
 i,j,n:integer;
 pr:array of char=('.',',',';',':','!','?');
begin
 readln(s);
s:=s.Trim;
var ars:=s.ToWords();
s:='';
for i:=0 to ars.Length-1 do
s+=ars[i]+' ';
s:=s.Trim;
i:=0;
while i<>s.Length do
begin
inc(i);
if (s[i] in pr) and (s[i-1]=' ') then delete(s,i-1,1);
end;
i:=0;
while i<>s.Length-1 do
begin
inc(i);
if (s[i] in pr) and (s[i+1]<>' ') then insert(' ',s,i+1);
end;
s:=s.Trim;
writeln(s);
end.

Пример ввода:
Очень, очень ,очень , очень ,очень,очень много слов.
Пример вывода:
Очень, очень, очень, очень, очень, очень много слов.
0,0(0 оценок)
Ответ:
Sauleorazbaeva1
Sauleorazbaeva1
18.10.2020 13:49
При работе со строками можно использовать много различных решения задачи. Здесь предлагается в котором применяются только две библиотечных подпрограммы (length и delete). Можно было сделать и без delete, а можно использовать trim, например. Короче говоря, вот такой вариант программы на паскале:
var 
s,s1:string;
mn:set of char;
i,l:integer;
begin
writeln('Введите строку:');
readln(s);
mn:=['.',',',';',':','!','?'];
while s[1]=' ' do delete(s,1,1);
while s[length(s)]=' ' do delete(s,length(s),1);
while pos('  ',s)>0 do delete(s,pos('  ',s),1);
s1:=s[1];
for i:=2 to length(s)-1 do
 if not((s[i]=' ')and(s[i+1] in mn)) then s1:=s1+s[i];
s1:=s1+s[length(s)];
s:=s1[1];
for i:=2 to length(s1)-1 do
 if (s1[i] in mn)and(s1[i+1]<>' ') then s:=s+s1[i]+' ' else s:=s+s1[i];
s:=s+s1[length(s1)];
writeln(s);
end.

Пример:
Введите строку:
   Дана строка   ,состоящая из слов  ,    разделенных пробелами   .   
Дана строка, состоящая из слов, разделенных пробелами.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота