GAECHKA
Твоя помощница в решении задач

Создать базу данных о своих одноклассниках

Создать базу данных о своих одноклассниках.
О каждом однокашнике должно быть известно:
Имя Возраст Пол. (фамилию не надо, так короче)
Программа должна:
1. Вычислить средний возраст однокашников;
2. Определить, кого среди них больше – дам или кавалеров;
3. Ответить на вопрос – есть ли в вашей базе тёзки (это не легко).

Это задание почему то в самоучителе дано без решения. Решения
даны и для Задания 116 (и для предыдущих) и для Задания 118 (и
для последующих). К вам я с этим заданием не обращался.
Выходит, что я сам сочинил эту программу.
Но вот попытался добавить ещё одну запись с именем Ваня
(чтобы было из чего выбирать тёзку), но не получилось. Отказ.
Вот такая строка, которую я пытался добавить в группу me:
(Imja ‘Ваня’ ; vozrast 21; pol: ‘мужской’);
А вот сама программа:
uses Crt;
type Dannie = record
        Imja: String;
        vozrast: Integer;
        pol: Stringж
end;
const me: Dannie =  {me – это моя группа}
 (Imja: ‘Петя’ ; vozrast: 18; pol: ‘мужской’);
zn1: Dannie =  {Группа знакомого zn1}
  (Imja: ‘Ваня’ ; vozrast: 20; pol: ‘мужской”);
zn2: Dannie =  {Группа знакомого zn2}
  (Imja: ‘Лена’ ; vozrast: 13; pol: ‘женский’);
Var vozrast, k1, k2: Integer;
begin
ClrScr;  
    k1:= 2;  k2:= 1;  (Кол. мужчин, кол. женщин}
WriteLn(me.Imja,’ ‘,me.vozrast, ‘ лет, пол – ‘,me.pol);
WriteLn(zn1.Imja,’ ‘,zn1.vozrast,’ лет, пол – ‘,zn1.pol);
WriteLn(zn2.Imja,’ ‘,zn2.vozrast,’ лет, пол – ‘,zn2.pol);
   WriteLn(‘ Кол. мужчин: ‘,k1);
   WriteLn(‘ Кол. женщин:‘,k2);
{Средний возраст знакомых}
         WriteLn;
WriteLn(‘ Ср. возраст знакомых: ‘);
WriteLn((me.vozrast+zn1.vozrast+zn2.vozrast) / 3:2:2);
{Кого больше – дам или кавалеров}
   if (me.pol + zn1.pol > zn2.pol) then
WriteLn(‘ Кавалеров больше.’);
   ReadLn
end.
На выходе имеем:
Петя 18 лет, пол – мужской
Ваня 20 лет, пол – мужской
Лена 13 лет, пол – женский
   Кол. мужчин:  2
   Кол. женщин:  1
Ср. возраст знакомых: 17.00
Кавалеров больше

Вам остаётся ввести одну – две строки для группы me
и сделать 3-й вопрос (а в задании сказано, что это не
легко), т. е. это не для меня.
И ещё: в блоке типизированных переменных попытался
объединить переменные Imja и pol типа String через
запятую в одной строке. Тоже не получилось. А ведь пере-
менные одного типа можно же писать в одной строке.
А почему здесь отказ?
P. S. Появилось желание сделать базу данных для всей
своей родни. Но для этого эту программу надо сделать
работающей.
0
вопрос задан

Источник


3 ответа
Начните с такого исправления:
var
  group: array [0..2] of Dannie = (
    (Imja: 'Петя'; vozrast: 18; pol: 'мужской'),
    (Imja: 'Ваня'; vozrast: 20; pol: 'мужской'),
    (Imja: 'Лена'; vozrast: 13; pol: 'женский'));
Ну и String для пола -- это жирновато, но пока на это можно не обращать внимания.
Создать базу данных о своих одноклассниках.
О каждом однокашнике должно быть известно:
Фамилия Имя Возраст
Программа должна:
1. Вычислить средний возраст однокашников;
2. Определить, кого среди них больше – дам или кавалеров;
3. Ответить на вопрос – есть ли в вашей базе тёзки (это не легко).
(по рекомендации модератора bormant’a удалил данные про пол)

1. uses Crt;
2. type Dannie = record
 3.       Imja: String;
 4.      vozrast: Integer;
 5. end;
  6. CONST me: Dannie =  {me – это моя группа}
  7.            (Imja: ‘Петя’ ; vozrast: 18);
  8.           zn1: Dannie =  {Группа знакомого zn1}
  9.                (Imja: ‘Ваня’ ; vozrast: 20
 10.               zn2: Dannie =  {Группа знакомого zn2}
 11.                  (Imja: ‘Лена’ ; vozrast: 13);
 12. Var vozrast, k1, k2: Integer;
 13. begin
14. ClrScr;  
15   k1:= 2;  k2:= 1;  (Кол. мужчин, кол. женщин}
16. WriteLn(me.Imja,’ ‘,me.vozrast, ‘ лет’);
17. WriteLn(zn1.Imja,’ ‘,zn1.vozrast,’ лет’);
 18. WriteLn(zn2.Imja,’ ‘,zn2.vozrast,’ лет’);
19. WriteLn(‘ Кол. мужчин: ‘,k1);
20.   WriteLn(‘ Кол. женщин:‘,k2);
21. WriteLn(‘ Ср. возраст знакомых: ‘);
22. WriteLn((me.vozrast+zn1.vozrast+zn2.vozrast) / 3:2:2);
 23.   ReadLn
24. end.
На выходе имеем:
Петя 18 лет
Ваня 20 лет
Лена 13 лет
   Кол. мужчин:  2
   Кол. женщин:  1
   Ср. возраст знакомых:  17.00
Попытался добавить ещё одну запись с именем Ваня в группу
me (чтобы было из чего выбирать тёзку), но не получилось.
Получил отказ. Вот такая строка, которую я пытался добавить
в группу me:
( Imja: ‘Ваня’ : vozrast: 21) – после 7-й строки и, соответ-
свенно, после 16-й строки. Получил отказ (даже ввёл ещё одно
имя - Imja , тоже ничего не дало).

Модератор bormant предложил начать с такого исправления:
1. Var
2.      group: array [0 .. 2] of Dannie = (
3.            (Imja: ‘Петя’: vozrast: 18);
4.            (Imja: ‘Ваня’: vozrast: 20):
5.            (Imja: ‘Лена’: vozrast: 13);
А какие строки исправлять – вопрос. Мои попытки ни к чему
не привели. Да ещё и вопрос про «есть ли тёзки» - остался
без внимания.
Создать базу данных о своих одноклассниках.
О каждом однокашнике должно быть известно:
Фамилия Имя Возраст
Программа должна:
1. Вычислить средний возраст однокашников;
2. Определить, кого среди них больше – дам или кавалеров;
3. Ответить на вопрос – есть ли в вашей базе тёзки (это не легко).
(по рекомендации модератора bormant’a удалил данные про пол)

1. uses Crt;
2. type Dannie = record
 3.       Imja: String;
 4.      vozrast: Integer;
 5. end;
  6. CONST me: Dannie =  {me – это моя группа}
  7.            (Imja: ‘Петя’ ; vozrast: 18);
  8.           zn1: Dannie =  {Группа знакомого zn1}
  9.                (Imja: ‘Ваня’ ; vozrast: 20
 10.               zn2: Dannie =  {Группа знакомого zn2}
 11.                  (Imja: ‘Лена’ ; vozrast: 13);
 12. Var vozrast, k1, k2: Integer;
 13. begin
14. ClrScr;  
15   k1:= 2;  k2:= 1;  (Кол. мужчин, кол. женщин}
16. WriteLn(me.Imja,’ ‘,me.vozrast, ‘ лет’);
17. WriteLn(zn1.Imja,’ ‘,zn1.vozrast,’ лет’);
 18. WriteLn(zn2.Imja,’ ‘,zn2.vozrast,’ лет’);
19. WriteLn(‘ Кол. мужчин: ‘,k1);
20.   WriteLn(‘ Кол. женщин:‘,k2);
21. WriteLn(‘ Ср. возраст знакомых: ‘);
22. WriteLn((me.vozrast+zn1.vozrast+zn2.vozrast) / 3:2:2);
 23.   ReadLn
24. end.
На выходе имеем:
Петя 18 лет
Ваня 20 лет
Лена 13 лет
   Кол. мужчин:  2
   Кол. женщин:  1
   Ср. возраст знакомых:  17.00
Попытался добавить ещё одну запись с именем Ваня в группу
me (чтобы было из чего выбирать тёзку), но не получилось.
Получил отказ. Вот такая строка, которую я пытался добавить
в группу me:
( Imja: ‘Ваня’ : vozrast: 21) – после 7-й строки и, соответ-
свенно, после 16-й строки. Получил отказ (даже ввёл ещё одно
имя - Imja , тоже ничего не дало).

Модератор bormant предложил начать с такого исправления:
 1. Var
2.      group: array [0 .. 2] of Dannie = (
3.            (Imja: ‘Петя’: vozrast: 18);
4.            (Imja: ‘Ваня’: vozrast: 20):
5.            (Imja: ‘Лена’: vozrast: 13);
А какие строки исправлять – вопрос. Мои попытки ни к чему
не привели. Да ещё и вопрос про «есть ли тёзки» - остался
без внимания.