М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
niklassn
niklassn
19.07.2022 07:30 •  Информатика

Дана программа на языке паскаля авс по решению слу методом гаусса. нужно написать комментарии к алгоритму программы, т.е. что мы делаем в каждой строке. умооляю procedure gay(n: integer; a: matrica; b: mass; var x: mass; var m: boolean); var i,j,p,h: integer; f,max,r,s: real; begin m: =false; for p: =1 to n do begin max: =abs(a[p,p]); h: =p; for i: =p+1 to n do if abs(a[i,p])> max then begin max: =abs(a[i,p]); h: =i; end; for j: =1 to n do begin r: =a[p,j]; a[p,j]: =a[h,j]; a[h,j]: =r; end; r: =b[p]; b[p]: =b[h]; b[h]: =r; for i: =p+1 to n do begin f: =a[i,p] / a[p,p]; for j: =p to n do a[i,j]: =a[i,j]-f*a[p,j]; b[i]: =b[i]-f*b[p]; end; end; if a[n,n]=0 then begin if b[n]=0 then writeln('бесконечно много решений') else writeln('решить невозможно') end else begin m: =true; for i: =n downto 1 do begin s: =0; for j: =i+1 to n do begin r: =a[i,j]*x[j]; s: =s+r; end; x[i]: =(b[i]-s)/ a[i,i]; end; end; end;

👇
Открыть все ответы
Ответ:
mishankina1985
mishankina1985
19.07.2022
Меньше в доту катай, все знать будешь :)
1)
uses crt;
var s,s1,s2,s3,r1,r2:real;
begin
writeln ('Введите радиус первого (маленького) круга:');
read (r1);
writeln ('Введите радиус второго (Большего, чем первый) круга:');
read (r2);
//pi - 3.14
s:=3.14*r1*r2 ;
writeln (s);
//s1 - Площадь первого круга, s2 - второго, s3 - кольца
s1:=3.14*sqr(r1);
s2:=3.14*sqr(r2);
if (s1=0) or (s2=0)
then writeln ('Одна из площадей равна нулю')
else begin s3:=s2-s1 ;  
writeln (s3); end
end.

2)
uses crt;
var x,y,x1,y1 :integer;
begin
writeln ('Введите целое значение x:'); // В программе используются только целые числа !!
read (x);
if (x-1)<0 
then y:=4 
else y:=3;
writeln (y);
end.

3)uses crt;
var  a,b,c:real ;
begin
writeln ('Последовательно введите 3 числа :');
read (a,b,c);
if (a<>b) and (b<>c) and (a<>c) 
then writeln ('Числа не равны') 
else
if (a=b) and (b=c) and (a=c) 
then writeln ('Числа все равны между собой')
else
if (a=b) and (b<>c) 
then writeln (c) 
else
if (a=c) and (c<>b) 
then writeln (b) 
else
if (b=c) and (c<>a) 
then writeln (a) 
end.

P.s. Писал на Pascal ABC. Блок-схему сделаешь сам, она не сложная. Удачи, инвакир :D
4,6(72 оценок)
Ответ:
Adelina174
Adelina174
19.07.2022
Заметим, что числа образуют арифметическую прогрессию, а её сумма известна:
S= \frac{a_1+a_n}{2}\times n= \frac{1+n}{2}\times n
Поэтому два варианта программы: один вычисляет сумму накоплением, второй сразу определяет результат по формуле. Хороший пример того, что программист должен знать математику.

var
  n, i, s: integer;

begin
  Write('Введите натуральное число: ');
  Readln(n);
  if (n mod 2) = 0 then
  begin
    s := 0;
    for i := 1 to n do s := s + i;
    Writeln('Сумма чисел от 1 до ', n, ' равна ', s)
  end
  else Writeln('Введено нечетное число')
end.

Тестовое решение:

Введите натуральное число: 8
Сумма чисел от 1 до 8 равна 36

var
  n, s: integer;

begin
  Write('Введите натуральное число: ');
  Readln(n);
  if (n mod 2) = 0 then
    Writeln('Сумма чисел от 1 до ', n, ' равна ', ((1 + n) * n) div 2)
  else Writeln('Введено нечетное число')
end.

Тестовое решение:

Введите натуральное число: 8
Сумма чисел от 1 до 8 равна 36
4,4(93 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ