Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
 Аватар для Werwolf_666999
0 / 0 / 2
Регистрация: 19.06.2010
Сообщений: 175

рост которых выше среднего

19.06.2010, 14:45. Показов 1529. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Файл f содержит записи следующей структуры:
- имя студента;
- пол;
- рост;
- оценки по трем экзаменам.
Написать процедуру , выводящую на экран имена студенток, рост которых выше среднего.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.06.2010, 14:45
Ответы с готовыми решениями:

Найти средний рост студентов группы и подсчитать сколько человек имеют рост выше среднего.
Найти средний рост студентов группы и подсчитать сколько человек имеют рост выше среднего.

Массивы. Определить количество учеников, рост которых больше среднего роста по классу
Помогите пожалуйста.Не могу решить=( Рост 25 учеников класса представлен в виде массива. Определить количество учеников ,рост которых...

Определить количество абитуриентов, средний балл которых выше среднего балла по институту
У меня есть программа, у которой условие " Определить количество абитуриентов, средний балл которых выше среднего балла по институту....

13
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
19.06.2010, 14:51
Файл f содержит записи следующей структуры:
Что за файл, какого типа?
Если текстовый, то как организованы записи в файле?
Если типизированный, то создается в этой же программе или отдельно?
0
 Аватар для Werwolf_666999
0 / 0 / 2
Регистрация: 19.06.2010
Сообщений: 175
19.06.2010, 17:00  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
Что за файл, какого типа?
Если текстовый, то как организованы записи в файле?
Если типизированный, то создается в этой же программе или отдельно?
Не чего не написано и поэтому я не пойму!
0
19.06.2010, 17:03

Не по теме:

Цитата Сообщение от Werwolf_666999 Посмотреть сообщение
Не чего не написано и поэтому я не пойму!
Интересно, с чего это мы должны понять, если вы ничего не поняли?

0
 Аватар для Werwolf_666999
0 / 0 / 2
Регистрация: 19.06.2010
Сообщений: 175
19.06.2010, 17:06  [ТС]
Цитата Сообщение от DeLuxe Посмотреть сообщение

Не по теме:



Интересно, с чего это мы должны понять, если вы ничего не поняли?

Конечно вы правы!Просто может кто нибудь такие пробовал писать?!
P.S.:Надежда всегда умирает последней!
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
19.06.2010, 17:07
Werwolf_666999, Да написать не проблема, просто нужны исходные данные.
0
 Аватар для Werwolf_666999
0 / 0 / 2
Регистрация: 19.06.2010
Сообщений: 175
19.06.2010, 17:11  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
Да написать не проблема, просто нужны исходные данные.
Извините за такой вопрос!Может только Процедуру надо написать?!Как вы думаете?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
procedure TASK_3_6(var f : myfile);
var
  average: real;
  rec: student;
begin
  reset(f);
  i := 1;
  while not Eof(f) do
  begin
    read(f, rec);
    average := average + rec.rost;
    inc(i);
  end;
  if i = 0 then writeln('пустой файл')
  else begin
    writeln('------------------------------------');
    writeln('Spisok studentov, rost kotoryh vyshe srednego:');
    reset(f);
    average := average / i;
    i := 0;
    while not Eof(f) do
    begin
      read(f, rec);
      if (rec.pol = 'f') and (rec.rost > average) then 
      begin
        writeln(rec.imya);
        i := i + 1;
      end;
    end;
    if i = 0 then
      writeln('Studenty, udovletvoryayuschih trebovaniyam, net.');
  end;
  writeln('------------------------------------');
  close(f);
end;
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
19.06.2010, 17:16
Цитата Сообщение от Werwolf_666999 Посмотреть сообщение
Может только Процедуру надо написать
Да это Ваше дело, только процедура без программы работать не будет, да и файла типизированного с записями, которые читает эта процедура у Вас точно нет. Если Вы не въедете в тему, сами по шагам не поймете что Вам нужно делать, никто не поможет.
0
 Аватар для Werwolf_666999
0 / 0 / 2
Регистрация: 19.06.2010
Сообщений: 175
19.06.2010, 17:24  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
Да это Ваше дело, только процедура без программы работать не будет, да и файла типизированного с записями, которые читает эта процедура у Вас точно нет. Если Вы не въедете в тему, сами по шагам не поймете что Вам нужно делать, никто не поможет.
Первая программа была такой:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
Program Light2;
Uses CRT;
type
student =   record
imya    : string;
pol : char;
rost    : byte;
otsenki : array [1..3] of integer;
end;
myfile = file of student;
var
i,s,j : integer;
t : array [1..30] of student;
f : myfile;
{----------------------------------}
Procedure TASK_3_6(var f : myfile);
var
i,a : integer;
t : array [1..30] of student;
begin
assign(f,'f.txt');
reset(f);
i := 1;
while not EOF(f) do
begin
read(f,t[i]);
i := i + 1;
end;
a := 0;
writeln('------------------------------------');
writeln('Spisok studentov, rost kotoryh vyshe srednego:');
for i := 1 to 30 do
if ((t[i].pol) = '¦') and ((t[i].rost) > 170) then
begin
writeln(t[i].imya);
a := 1;
end;
if a = 0 then
writeln('Studenty, udovletvoryayuschih trebovaniyam, net.');
writeln('------------------------------------');
        {$I+}
end;
{----------------------------------}
begin
ClrScr;
assign(f,'f.txt');
    {$I-}
 reset(f);
 if IOResult <> 0 then
 begin
 rewrite(f);
 write('Vvedite kolichestvo studentov: ');
 readln(s);
 for i:=1 to s do
 begin
 writeln('Svedeniya o ',i,' studente');
 write('Imya: '); readln(t[i].imya);
 write('Pol(man,woman): '); readln(t[i].pol);
 write('Rost(sm.): '); readln(t[i].rost);
 writeln('Ocenki po ekzamenu: ');
  for j:=1 to 3 do 
  begin
  case j of
  1:write('Algebra: ');
  2:write('Programmirovanie: ');
  3:write('Geometriya: ');
  end;
  readln(t[i].otsenki[j]);
  if not ((t[i].otsenki[j]>0) and (t[i].otsenki[j]<=5)) then
  begin
  writeln('Neverno vvedena ocenka!Povtorite vvod.');
  j:=j-1;
  end;
  end;
  end;
  for i:=1 to s do write(f,t[i]);
  end;
close(f);
TASK_3_6(f);
end.
Мне зделали 2 замечания :1)в файле сначала надо найти среднее, а потом распечатать имена студенток 2)Не надо использовать массив
Последняя надежда это ВЫ!
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
19.06.2010, 17:39
Раз уж потянуло на типизированные, напиши так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
uses crt;
type stud=record
          im:string[10];
          pl:char;
          rs:140..200;
          oc:array[1..3] of 2..5;
          end;
    fail=file of stud;
var f:fail;
    s:stud;
    c:char;
    n,i,k:byte;
    sr:real;
begin
clrscr;
assign(f,'student');
rewrite(f);
writeln('Введите данные о студентах, окончание ввода Esc');
n:=0;
repeat
n:=n+1;
writeln('Запись ',n);
with s do
 begin
  write(' Имя: ');readln(im);
  repeat
  write(' Пол [м,ж]: ');
  readln(pl);
  until pl in ['м','ж'];
  repeat
  write(' Рост [140..200]: ');
  readln(rs);
  until rs in [140..200];
  writeln(' Введите 3 оценки [2-5]');
  for i:=1 to 3 do
   begin
    repeat
    write('  оценка ',i,' ' );
    readln(oc[i]);
    until oc[i] in [2..5];
   end;
  write(f,s);
 end;
c:=readkey;
until c=#27;
clrscr;
writeln('Полный список студентов:');
writeln;
writeln('-----------------------------------');
writeln('|    Имя    | Пол | Рост | Оценки |');
writeln('-----------------------------------');
reset(f);
sr:=0;
n:=filesize(f);
while not eof(f) do
 begin
  read(f,s);
  with s do
   begin
    gotoXY(1,whereY);write('| ',im);
    gotoXY(13,whereY);write('|',pl:3);
    gotoXY(19,whereY);write('|',rs:4);
    gotoXY(26,whereY);write('| ');
    for i:=1 to 3 do write(oc[i]:2);
    gotoXY(35,whereY);writeln('|');
    sr:=sr+rs;
   end;
 end;
writeln('-----------------------------------');
close(f);
write('Press Enter...');
readln;
clrscr;
sr:=sr/n;
writeln('Список студенток со средним ростом выше среднего:');
writeln('         (средний рост=',sr:0:2,')');
writeln;
writeln('-----------------------------------');
writeln('|    Имя    | Пол | Рост | Оценки |');
writeln('-----------------------------------');
reset(f);
k:=0;
while not eof(f) do
 begin
  read(f,s);
  with s do
  if (rs>sr)and(pl='ж') then
   begin
    k:=1;
    gotoXY(1,whereY);write('| ',im);
    gotoXY(13,whereY);write('|',pl:3);
    gotoXY(19,whereY);write('|',rs:4);
    gotoXY(26,whereY);write('| ');
    for i:=1 to 3 do write(oc[i]:2);
    gotoXY(35,whereY);writeln('|');
   end;
 end;
writeln('------------------------------------');
if k=0 then write('Студенток с ростом, выше среднего нет!');
write('Press Enter...');
readln
end.
2
 Аватар для Werwolf_666999
0 / 0 / 2
Регистрация: 19.06.2010
Сообщений: 175
19.06.2010, 17:44  [ТС]
ВЫ ГЕНИЙ!СПАСИБО!
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
19.06.2010, 17:56
Werwolf_666999, Там по условию процедура, я не заметил. Сам переделаешь?
0
 Аватар для Werwolf_666999
0 / 0 / 2
Регистрация: 19.06.2010
Сообщений: 175
19.06.2010, 17:59  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
Werwolf_666999, Там по условию процедура, я не заметил. Сам переделаешь?
Да!Теперь я понял как можно сделать!
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
19.06.2010, 18:01
Ладно, держи.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
uses crt;
type stud=record
          im:string[10];
          pl:char;
          rs:140..200;
          oc:array[1..3] of 2..5;
          end;
    fail=file of stud;
procedure Rost(var f:fail;sr:real);
var s:stud;
    k,i:byte;
begin
writeln('Список студенток со средним ростом выше среднего:');
writeln('         (средний рост=',sr:0:2,')');
writeln;
writeln('-----------------------------------');
writeln('|    Имя    | Пол | Рост | Оценки |');
writeln('-----------------------------------');
reset(f);
k:=0;
while not eof(f) do
 begin
  read(f,s);
  with s do
  if (rs>sr)and(pl='ж') then
   begin
    k:=1;
    gotoXY(1,whereY);write('| ',im);
    gotoXY(13,whereY);write('|',pl:3);
    gotoXY(19,whereY);write('|',rs:4);
    gotoXY(26,whereY);write('| ');
    for i:=1 to 3 do write(oc[i]:2);
    gotoXY(35,whereY);writeln('|');
   end;
 end;
writeln('------------------------------------');
if k=0 then write('Студенток с ростом, выше среднего нет!');
write('Press Enter...');
end;
var f:fail;
    s:stud;
    c:char;
    n,i:byte;
    sr:real;
begin
clrscr;
assign(f,'student');
rewrite(f);
writeln('Введите данные о студентах, окончание ввода Esc');
n:=0;
repeat
n:=n+1;
writeln('Запись ',n);
with s do
 begin
  write(' Имя: ');readln(im);
  repeat
  write(' Пол [м,ж]: ');
  readln(pl);
  until pl in ['м','ж'];
  repeat
  write(' Рост [140..200]: ');
  readln(rs);
  until rs in [140..200];
  writeln(' Введите 3 оценки [2-5]');
  for i:=1 to 3 do
   begin
    repeat
    write('  оценка ',i,' ' );
    readln(oc[i]);
    until oc[i] in [2..5];
   end;
  write(f,s);
 end;
c:=readkey;
until c=#27;
clrscr;
writeln('Полный список студентов:');
writeln;
writeln('-----------------------------------');
writeln('|    Имя    | Пол | Рост | Оценки |');
writeln('-----------------------------------');
reset(f);
sr:=0;
n:=filesize(f);
while not eof(f) do
 begin
  read(f,s);
  with s do
   begin
    gotoXY(1,whereY);write('| ',im);
    gotoXY(13,whereY);write('|',pl:3);
    gotoXY(19,whereY);write('|',rs:4);
    gotoXY(26,whereY);write('| ');
    for i:=1 to 3 do write(oc[i]:2);
    gotoXY(35,whereY);writeln('|');
    sr:=sr+rs;
   end;
 end;
writeln('-----------------------------------');
sr:=sr/n;
close(f);
write('Press Enter...');
readln;
clrscr;
Rost(f,sr);
readln
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.06.2010, 18:01
Помогаю со студенческими работами здесь

Определить количество человек, рост которых больше среднего роста всех 25 человек
Рост 25 человек задан одномерным массивом. определить количество человек рост которых больше среднего роста всех 25 человек. Добавлено...

Вывести на экран ФИО студентов, средний балл которых выше среднего балла всей группы
дана группа студентов которая сформирована ФИО. номер группы и 5 оценок. вывести на экран ФИО. студентов средний балл, которых выше...

Напечатать списки рабочих чья зарплата ниже среднего, выше среднего, максимальна
F1...F15-фамилия рабочих Z1...Z15-зарплата начисляемая за месяц напечатать списки рабочих чья зарплата ниже среднего, выше среднего и...

Определите сколько человек имеют рост ниже среднего по группе
Имеется группа из 12 человек разного роста. Определите сколько человек имеют рост ниже среднего по группе Помогите пожалуйста, срочно...

Программа нахождения среднего роста школьников и рост самого высокого школьника
составте программу нахождения среднего роста школьников и рост самого высокого школьника, если заранее неизвестно сколько всего школьников...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru