В текстовом файле хранятся данные о температуре каждого дня за некоторый год. -Вывести...

0 голосов
154 просмотров

В текстовом файле хранятся данные о температуре каждого дня за некоторый год.
-Вывести все данные.
-Вывести среднюю температуру за последний месяц.
-Определить сколько было самых жарких дней (т.е. с температурой, отличающейся от самой высокой на 3 градуса).
(турбо паскаль)


Информатика (49 баллов) | 154 просмотров
0

надо

0

ну так указывай

0

pas

0

text

0

это формат файла, а я прошу формат данных. т.е. как и какие данные помещаются в файлы, как разделяются записи, как разделяются данные внутри записи, какие именно это данные, каого типа? и тд

0

желательно пример файла

0

с данными конечно

0

program primer; uses crt; const n=10; var f:text; s:string; sr:real; a,max,c,i,k:integer; begin assign(f,'file.txt'); reset(f); max:=0; i:=1; while not eof (f) do begin readln(f,a); If a>max then max:=a; i:=i+1; end; c:=0; sr:=0; while not eof(f) do begin readln(f,a); c:=c+a; end; sr:=c/n; k:=0; while not eof (f) do begin readln(f,c); if (max<=max-3) then k:=k+1; close(f); write(sr); readln; end; end.

0

вот так бы сразу

0

были проблемы с обпределением последнего месяца, но решили как решили)

Дан 1 ответ
0 голосов
Правильный ответ

Uses crt;
const
  month_length = 30;

var
  f: text;
  max, i, k, s, n: integer;
  a: array[1..366] of integer;

begin
  assign(f, 'file.txt');
  //закоментировать если файл существует
  rewrite(f);
  randomize;
  for i := 1 to 365 do
    writeln(f, Random(100) - 50);
  close(f);
 
  reset(f);
  n := 0;
  while not eof(f) do
  begin
    n := n + 1;
    readln(f, a[n]);
    Write(a[n], ' ');
    if (a[n] > max) or (n = 1) then max := a[n];
  end;
  close(f);
 
  Writeln;
  s := 0;
  k := 0;
  for i := 1 to n do
  begin
    if abs(a[i] - max) <= 3 then k := k + 1;<br>    if n - i <= month_length then s := s + a[i];<br>  end;
  writeln('Last month average = ', s / month_length);
  writeln('Tops = ', k);
 
end.

(53.1k баллов)
0

выполнено в стиле турбо паскаля