0 / 0 / 0
Регистрация: 05.02.2020
Сообщений: 7
1
Delphi 6-7

Написать программу, которая формирует файл записей данной структуры

01.05.2020, 11:52. Показов 1330. Ответов 2

Author24 — интернет-сервис помощи студентам
Написать программу, которая формирует файл записей данной структуры
Delphi
1
2
3
4
5
Type Klass = Record
Imja : (Anna, Ivan, Egor, Irina, Meri, Sofi);
Pol : (f,m);
Rost : 140..200;
End;
и определяет: - средний рост женщин:
- имя самого высокого мужчины:
- есть ли в группе хотя бы два человека одного роста.

Помогите пожалуйста :3
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.05.2020, 11:52
Ответы с готовыми решениями:

Программа, которая формирует массив записей данной структуры
Type Kniga=Record Avtor:string; Nazvanie:string; God:integer; Izdatel:string; ...

Написать программу, которая формирует файл записей данной структуры
Написать программу, которая формирует файл записей данной структуры Type Klass = Record Imja :...

Написать программу, которая формирует массив записей данной структуры
Написать программу, которая формирует массив записей данной структуры: Type Drug = Record ...

Разработать алгоритм и программу, которая формирует файл записей данной структуры
решите плиз задачу разработать алгоритм и программу, которая формирует файл записей данной...

2
Эксперт Pascal/Delphi
6811 / 4568 / 4819
Регистрация: 05.06.2014
Сообщений: 22,438
02.05.2020, 09:50 2
Цитата Сообщение от Altron227 Посмотреть сообщение
имя самого высокого мужчины:
Имени самого высокого мужчины нет, так как данные перечислимого типа невозможно вывести.
Только рост.
Цитата Сообщение от Altron227 Посмотреть сообщение
есть ли в группе хотя бы два человека одного роста.
Это самостоятельно. Подсмотреть реализацию можно тут:
Опишите логическую функцию, проверяющую, есть ли в группе G хотя бы два человека одного роста


Delphi
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
program Project8;
 
{$APPTYPE CONSOLE}
 
{$R *.res}
 
uses
System.SysUtils;
 
const
  n = 100;
 
type
  Klass = Record
    Imja: (Anna, Ivan, Egor, Irina, Meri, Sofi);
    Pol: (f, m);
    Rost: 140..200;
  End;
 
var
  chel: klass;
  imax, q, i: integer;
  g: file of klass;
  sr: real;
  max: klass;
 
begin
  try
    { TODO -oUser -cConsole Main : Insert code here }
    assign(g, 'data.dat');
    rewrite(g);
    imax := 1;
    for i := 1 to n do
      with chel do
      begin
        q := random(6) + 1;
        case q of
          1: Imja := Anna;
          2: Imja := Ivan;
          3: Imja := Egor;
          4: Imja := Irina;
          5: Imja := Meri;
          6: Imja := Sofi;
        end; //of case
        q := random(2) + 1;
        case q of
          1: Pol := f;
          2: Pol := m;
        end; //of case
        rost := 140 + random(61);
        write(g, chel);
      end;
    close(g);
    sr := 0;
    q := 0;
    imax := 0;
    reset(g);
    while not eof(g) do
    begin
      read(g, chel);
      if chel.Pol = f then
      begin
        inc(q);
        sr := sr + chel.Rost;
      end;
      if (chel.Pol = m) and (chel.Rost > imax) then
      begin
        imax := chel.Rost;
        max := chel;
      end;
    end;
    close(g);
    if q <> 0 then
    begin
      sr := sr / q;
      writeln('Средний рост женщин: ', sr:0:2)
    end
    else
      writeln('Женщин нет.');
    if imax <> 0 then
      writeln('Имени самого высокого мужчины нет, так как данные перечислимого типа невозможно вывести! Его рост: ', max.Rost)
    else
      writeln('Мужчин нет.');
    Readln;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.
Добавлено через 16 минут
Пол неправильно формировался.
Исправьте на:
Delphi
1
2
3
4
  if (Imja = Ivan) or (Imja = Egor) then
          pol := m
        else
          pol := f;
0
403 / 132 / 27
Регистрация: 04.08.2018
Сообщений: 585
02.05.2020, 11:48 3
Лучший ответ Сообщение было отмечено Altron227 как решение

Решение

Переделал условие так, чтобы можно было узнать имя. Добавил исправление формирования пола.
Delphi
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
{$APPTYPE CONSOLE}
 
 
 
uses
System.SysUtils,TypInfo;
 
const
  n = 100;
 
type
Names= (Anna, Ivan, Egor, Irina, Meri, Sofi);
 
  Klass = Record
    Imja:  Names;
    Pol: (f, m);
    Rost: 140..200;
  End;
 
var
  chel: klass;
  imax, q, i: integer;
  g: file of klass;
  sr: real;
  max: klass;
 
begin Randomize;
  try
    { TODO -oUser -cConsole Main : Insert code here }
    assign(g, 'data.dat');
    rewrite(g);
    imax := 1;
    for i := 1 to n do
      with chel do
      begin
        q := random(6) + 1;
        case q of
          1: Imja := Anna;
          2: Imja := Ivan;
          3: Imja := Egor;
          4: Imja := Irina;
          5: Imja := Meri;
          6: Imja := Sofi;
        end; //of case
          if (Imja = Ivan) or (Imja = Egor) then
          pol := m
        else
          pol := f;
        rost := 140 + random(61);
        write(g, chel);
      end;
    close(g);
    sr := 0;
    q := 0;
    imax := 0;
    reset(g);
    while not eof(g) do
    begin
      read(g, chel);
      if chel.Pol = f then
      begin
        inc(q);
        sr := sr + chel.Rost;
      end;
      if (chel.Pol = m) and (chel.Rost > imax) then
      begin
        imax := chel.Rost;
        max := chel;
      end;
    end;
    close(g);
    if q <> 0 then
    begin
      sr := sr / q;
      writeln('Средний рост женщин: ', sr:0:2)
    end
    else
      writeln('Женщин нет.');
    if imax <> 0 then
     begin
      writeln('Имя самого высокого мужчины:', GetEnumName(TypeInfo(names), Ord(max.Imja)));
      writeln('Его рост: ', max.Rost);
     end
    else
      writeln('Мужчин нет.');
    Readln;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.
0
02.05.2020, 11:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.05.2020, 11:48
Помогаю со студенческими работами здесь

Написать программу, которая формирует файл записей заданной структуры
Написать программу, которая формирует файл записей данной структуры: Type Student = Record Name:...

Разработать алгоритм и программу, которая формирует файл данной структуры
Написать программу, которая формирует массив записей данной структуры: Type Drug = Record ...

Составить программу, которая формирует файл записей
Составить программу, которая формирует файл записей, содержащий информацию о сотрудниках...

Написать программу, которая использует файл записей следующей структуры: -фамилия; -месяц рождения; -год рождения. вывод
Написать программу, которая использует файл записей следующей структуры: -фамилия; -месяц...

Написать программу, которая формирует типизированный файл. и сортирует методом выбора
Написать программу, которая формирует типизированный файл из k-случайных чисел и сортирует методом...

Написать программу, которая формирует файл результата путем выбрасывания повторяющихся чисел
Компонентами вводимого файла являются пары целых чисел: Num (числитель) и Den (знаменатель)....


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru