ПРОГРАММИСТЫ ВЫРУЧАЙТЕ!Напишите программу, по которой будут введены данные из файла, и...

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

ПРОГРАММИСТЫ ВЫРУЧАЙТЕ!
Напишите программу, по которой будут введены данные из файла, и выполнена следующая обработка: 1) определение среднего роста и среднего веса всех учеников; 2) вывод на экран и в файл rost.txt списка (фамилии, имена, возраст) учеников, рост которых выше среднего; 3) вывод на экран и в файл ves.txt списка учеников, вес которых ниже среднего.


Информатика Начинающий (605 баллов)
оставил комментарий Начинающий (605 баллов)

и на его подобие нужно написать новую программу о росте и весе.

оставил комментарий Архангел (142k баллов)

И зачем он нужен, если совершенно бесполезен?

оставил комментарий Начинающий (605 баллов)

задание так звучит.

оставил комментарий Архангел (142k баллов)

Да наверняка Вы взяли оба задания из разных вариантов, вот они и не стыкуются. Вы что, действительно настолько в предмете на разбираетесь, что не видите этого?

оставил комментарий Начинающий (605 баллов)

придраться не к чему?

оставил комментарий Начинающий (605 баллов)

теперь спокойны?

оставил комментарий Архангел (142k баллов)

То, что Вы представили в качестве задания, - это примерно как прийти в портному и сказать: "Мне нужно бальное платье, вот Вам примерный фасон на основе мужских трусов"

оставил комментарий Начинающий (605 баллов)

если в учебнике так звучит, я что сделаю? все претензии к автору. До свидания.

оставил комментарий Архангел (142k баллов)

Рано прощаетесь. На этом Сервисе автор вопроса - Вы, а не какой-то ваш источник заданий. Посему как раз претензии к Вам.

оставил комментарий Начинающий (605 баллов)

до свидания.

Дан 1 ответ
0 голосов
Архангел (142k баллов)
 
Правильный ответ

//PascalABC.NET 3.0, сборка 1088
begin
  var a:=ReadLines('infile.txt').ToArray;
  var n:=a.Length;
  Writeln('*** Исходная информация ***');
  // фамилия, имя, возраст, рост, вес
  a.PrintLn(NewLine);
  Writeln('*** Задание 1 ***');
  var sves:real:=0;
  var srost:real:=0;
  foreach var s in a do begin
    srost+=StrToFloat(s.ToWords.ElementAt(3));
    sves+=StrToFloat(s.ToWords.ElementAt(4))
    end;
  Writeln('Средний рост равен ',srost/n:5:1);
  Writeln('Средний вес равен ',sves/n:4:1);
  srost/=n; sves/=n;
  Writeln('*** Задание 2 ***');
  var f2:=OpenWrite('rost.txt');
  foreach var s in a do begin
    var ss:=s.ToWords;
    var rost:=StrToFloat(ss.ElementAt(3));
    if rost>srost then begin
      var s0:=ss.Take(3).ToArray;
      var s1:=s0[0]+' '+s0[1]+', '+s0[2];
      Writeln(s1);
      Writeln(f2,s1)
      end
    end;
  f2.Close;
  Writeln('*** Задание 3 ***');
  f2:=OpenWrite('ves.txt');
  foreach var s in a do begin
    var ss:=s.ToWords;
    var ves:=StrToFloat(ss.ElementAt(4));
    if ves      var s0:=ss.Take(3).ToArray;
      var s1:=s0[0]+' '+s0[1]+', '+s0[2];
      Writeln(s1);
      Writeln(f2,s1)
      end
    end;
  f2.Close
end.

Тестовое решение:
*** Исходная информация ***
Иванов Игорь 14 158 47.4
Петров Павел 14 161 58.3
Козлов Кирилл 15 160 60.3
Сидорова Мария 14 156 45.9
Тяпкина Наталья 15 158 46
Ляпкин Алексей 15 161 58.6
Мамочкин Константин 14 157 52.8
*** Задание 1 ***
Средний рост равен 158.7
Средний вес равен 52.8
*** Задание 2 ***
Петров Павел, 14
Козлов Кирилл, 15
Ляпкин Алексей, 15
*** Задание 3 ***
Иванов Игорь, 14
Сидорова Мария, 14
Тяпкина Наталья, 15


Скачать вложение Текст (TXT)
оставил комментарий
автор гондон! нихуя не помог
...