Var u7, d7, v7, s7: array[1..7] of real; i: integer; s: real;
begin writeln('Вводите температуры за утро, день и вечер'); s := 0; for i := 1 to 7 do begin write(i:1, ': '); readln(u7[i], d7[i], v7[i]); s7[i] := (u7[i] + d7[i] + v7[i]) / 3; s := s + s7[i] end; s := s / 7; writeln; writeln('Средние температуры по дням недели:'); for i := 1 to 7 do write(s7[i]:0:1, ' '); writeln; writeln('Средняя температура за неделю: ', s:0:1) end.
Тестовое решение:
Вводите температуры за утро, день и вечер 1: 19.6 24.8 17.3 2: 16.8 22.3 18.1 3: 15.9 24.2 19.0 4: 18.5 26.8 20.3 5: 19.2 25.6 21.7 6: 19.0 23.7 20.1 7: 18.8 23.9 19.5
Средние температуры по дням недели: 20.6 19.1 19.7 21.9 22.2 20.9 20.7 Средняя температура за неделю: 20.7
В целом программа рабочая, за исключением одного маленького блока, т.к. не могу прописать условие нормально:с Я указала комментарии к частям кода, в том числе и к тому самому блоку. Если кто знает, как его составить - отпишитесь:)
const n=5; function prime(a:integer):boolean; //функция определяет, является ли число простым var i,n:integer; begin prime:=false; if (a<2) then exit; if (not odd(a)) and (a<>2) then exit; for i:=3 to trunc(sqrt(a)) do begin if a mod i = 0 then exit; inc(i,2); end; prime:=true; end;
var a,b,c:array[1..n] of integer; i,j,p,min,max:integer;
begin
for i:=1 to n do a[i]:=random(10); //заполняем массив write('исходный массив: '); for i:=1 to n do write(a[i]:5); //выводим массив на экран writeln; min:=a[1]; max:=a[1]; //ищем минимальное и максимальное значение for i:=1 to n do if (a[i]>max) then max:=a[i]; for i:=1 to n do if (a[i]<min) then min:=a[i]; write('Минимальное: ',min,' Максимальное: ',max); //Выводим эти значения на экран writeln; for i:=1 to n do if (prime(a[i])) or (a[i]=1) and (a[i]<>2) then //заполняем массив С простыми числами, которые (!) Входят в массив А c[i]:=a[i]; write('Простые числа в массиве А: '); for i:=1 to n do write(c[i]:5); //Выводим массив С на экран writeln;
j:=min; //ВНИМАНИЕ!! Весь вопрос в этом небольшом блоке, заполнить массив В числами от min до max(которые уже найдены), не входящими в массив С for i:=1 to n do begin if (prime(j)) and (j<>c[i]) and (j<>2) then b[i]:=j; inc(j); end;
for i:=n-1 downto 1 do begin //сортируем по возрастанию for j:=1 to i do if (b[j]>=b[j+1]) then begin p:=b[i]; b[i]:=b[i+1]; b[i+1]:=p; end; end; write('Искомый массив: '); for i:=1 to n do write(b[i]:5); //Выводим массив В на экран writeln; end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку