Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 05.01.2015
Сообщений: 9
1

Вывести список студентов, которым в этом году исполняется 20 лет

08.01.2015, 23:41. Показов 1770. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не получается добить программу до окончания. Должна выводить список студентов, которым в этом году исполняется 20 лет. Помогите или подскажите где, что не так. Заранее спасибо.

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
program stud20; 
 const n=2;
       m=1995;
 type 
    student=record
    fio: string;
    dat_r: real;
    kolp: integer;
    exam1,exam2,exam3: integer;
 end; 
 var x: array [1..n] of student; 
    i:integer;
    exam1,exam2,exam3: integer;
 begin 
      for i:=1 to n do 
      begin 
       writeln ('Введіть Прізвище студента'); 
       readln (x[i].fio); 
       writeln ('Введіть рік народження'); 
       readln (x[i].dat_r); 
       writeln ('Введіть кількість пропусків'); 
       readln(x[i].kolp); 
       Writeln('Введіть оцінку за 1 екзамен: ');
       Readln(exam1);
       Writeln('Введіть оцінку за 2 екзамен: ');
       Readln(exam2);
       Writeln('Введіть оцінку за 3 екзамен: ');
       Readln(exam3);
       end; 
    
      begin
        WriteLn('|','Прізвище':10,'|','Рік народження':10,'|','Кількість пропусків':10,'|','Екзамен 1':9,'|','Екзамен 2':9,'|','Екзамен 3':9,'|');
        for i:=1 to n do 
        with x[i] do 
        begin
          write('|',fio:10,'|',dat_r:10,'|',kolp:10,'|',exam1:9,'|',exam2:9,'|',exam2:9,'|');
         end;
      end;
    Writeln('Студенти, яким у цьому роцi виповнюється 20 років');
                             
           begin
            if x[i].dat_r = m+20 then 
            writeLn(x[i].fio,' ');
           end;
          readln
end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.01.2015, 23:41
Ответы с готовыми решениями:

Вывести на экран список студентов, которым исполнилось 20 лет
о группе студентов известны следующие сведения : количество студентов количество экзаменов фамилия...

Вывести в СheckListBox1 список всех студентов, родившихся в этом году
В ListBox1 создайте список студентов вашей группы (фамилия, имя). В ListBox2 создайте синхронный...

Распечатать ФИО, оценки и средний бал успеваемости тех студентов, которым в текущем году исполнилось 18 лет
Дан текстовый файл F, в каждой строке которого-сведения о студенте некоторой группы: ФИО студента,...

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

4
2509 / 1130 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
09.01.2015, 00:54 2
winowl, у Вас точно Turbo Pascal ?!

Добавлено через 4 минуты
если точно Turbo Pascal, тогда предлагаю такой вариант:
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
program stud20;
uses Dos;
const n = 2;
type
  student = record
    fio: string;
    dat_r: integer;
    kolp: integer;
    exam1, exam2, exam3: integer;
  end;
var x: array[1..n] of student;
  i: integer;
  exam1, exam2, exam3: integer;
  year, month, dey, dow: Word;
begin
  for i := 1 to n do
  begin
    writeln('Введiть Прiзвище студента');
    readln(x[i].fio);
    writeln('Введiть рiк народження');
    readln(x[i].dat_r);
    writeln('Введiть кiлькiсть пропускiв');
    readln(x[i].kolp);
    Writeln('Введiть оцiнку за 1 екзамен: ');
    Readln(exam1);
    Writeln('Введiть оцiнку за 2 екзамен: ');
    Readln(exam2);
    Writeln('Введiть оцiнку за 3 екзамен: ');
    Readln(exam3);
  end;
 
  WriteLn('|', 'Прiзвище': 10, '|', 'Рiк народження': 10, '|', 'Кiлькiсть пропускiв': 10, '|',
    'Екзамен 1': 9, '|', 'Екзамен 2': 9, '|', 'Екзамен 3': 9, '|');
  for i := 1 to n do
    with x[i] do
    begin
      write('|', fio: 10, '|', dat_r: 10, '|', kolp: 10, '|', exam1: 9, '|', exam2: 9, '|', exam2: 9, '|');
    end;
  WriteLn;
 
  GetDate(year, month, dey, dow);
 
  Writeln('Студенти, яким у цьому роцi виповнюється 20 рокiв');
 
  begin
    if x[i].dat_r = year - 20 then
      writeLn(x[i].fio, ' ');
  end;
  readln
end.
0
0 / 0 / 0
Регистрация: 05.01.2015
Сообщений: 9
09.01.2015, 10:12  [ТС] 3
Извините, но у меня PascalABC.NET
0
2509 / 1130 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
09.01.2015, 11:24 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от winowl Посмотреть сообщение
Извините, но у меня PascalABC.NET
А зачем тогда в раздел "Turbo Pascal" было сообщение помещать? Для PascalABC.NET есть свой раздел!

так устроит?
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
program stud20;
uses System;
const n = 2;
type
  student = record
    fio: string;
    dat_r: integer;
    kolp: integer;
    exam1, exam2, exam3: integer;
  end;
var x: array[1..n] of student;
  i: integer;
  exam1, exam2, exam3: integer;
  dateToday : DateTime;  
begin
  for i := 1 to n do
  begin
    writeln('Введiть Прiзвище студента');
    readln(x[i].fio);
    writeln('Введiть рiк народження');
    readln(x[i].dat_r);
    writeln('Введiть кiлькiсть пропускiв');
    readln(x[i].kolp);
    Writeln('Введiть оцiнку за 1 екзамен: ');
    Readln(exam1);
    Writeln('Введiть оцiнку за 2 екзамен: ');
    Readln(exam2);
    Writeln('Введiть оцiнку за 3 екзамен: ');
    Readln(exam3);
  end;
 
  WriteLn('|', 'Прiзвище': 10, '|', 'Рiк народження': 10, '|', 'Кiлькiсть пропускiв': 10, '|',
    'Екзамен 1': 9, '|', 'Екзамен 2': 9, '|', 'Екзамен 3': 9, '|');
  for i := 1 to n do
    with x[i] do
    begin
      write('|', fio: 10, '|', dat_r: 10, '|', kolp: 10, '|', exam1: 9, '|', exam2: 9, '|', exam2: 9, '|');
    end;
  WriteLn;
 
  // GetDate(year, month, dey, dow);
  dateToday := DateTime.Today;
 
  Writeln('Студенти, яким у цьому роцi виповнюється 20 рокiв');
 
  begin
    if x[i].dat_r = dateToday.Year - 20 then
      writeLn(x[i].fio, ' ');
  end;
  readln
end.
0
0 / 0 / 0
Регистрация: 05.01.2015
Сообщений: 9
09.01.2015, 11:56  [ТС] 5
Спасибо, работает! С форумом только разбираюсь. Поэтому делаю ошибки. Буду исправляться! Как говорится не делает ошибки тот, кто ничего не делает! Спасибо ещё раз за помощь!!!
0
09.01.2015, 11:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.01.2015, 11:56
Помогаю со студенческими работами здесь

Вывести в новый файл список студентов, удалив из него студентов окончивших школу в текущем году
На основе данных входного файла составить список студентов группы, включив следующие данные: ФИО,...

Вывести в новый файл список студентов, удалив из него студентов окончивших школу в текущем году.
На основе данных входного файла составить список студентов группы, включив следующие данные: ФИО,...

Вывести список автомобилей, проходящих техосмотр в этом году
При постановке на учет в ГАИ автолюбители указывают следующие данные: марка автомобиля, год...

Из фразы "Сашеньке вчера исполняется 120 лет" получить фразу "Саше завтра исполняется 12 лет"
Из фразы "Сашеньке вчера исполняется 120 лет" получить фразу "Саше завтра исполняется 12 лет",...


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

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