Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.96/47: Рейтинг темы: голосов - 47, средняя оценка - 4.96
0 / 0 / 0
Регистрация: 24.06.2012
Сообщений: 25
1

Определить самого старшего человека из списка и вывести его фамилию, имя и дату рождения

25.06.2012, 01:04. Просмотров 9823. Ответов 1
Метки нет (Все метки)

Имеется список людей с указанием их фамилии, имени и даты рождения. Напишите эффективную по времени работы и по используемой памяти программу, которая будет определять самого старшего человека из этого списка и выводить его фамилию, имя и дату рождения, а если имеется несколько самых старших людей с одинаковой датой рождения, то определять их количество.
На вход программе в первой строке подается количество людей в списке N. В каждой из последующих N строк находится информация в следующем формате:
<Фамилия> <Имя> <Дата рождения>
где <Фамилия> – строка, состоящая не более, чем из 20 символов без пробелов, <Имя> – строка, состоящая не более, чем из 20 символов без пробелов, <Дата рождения> – строка, имеющая вид ДД.ММ.ГГГГ, где ДД – двузначное число от 01 до 31, ММ – двузначное число от 01 до 12, ГГГГ – четырехзначное число от 1800 до 2100.
Пример входной строки:
Иванов Сергей 27.03.1993
Программа должна вывести фамилию и имя самого старшего человека в списке.
Пример выходных данных:
Иванов Сергей
Если таких людей, несколько, то программа должна вывести их количество. Пример вывода в этом случае:
3
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.06.2012, 01:04
Ответы с готовыми решениями:

Определить самого старшего человека из списка и выводить его фамилию, имя и дату рождения
19) Имеется список людей с указанием их фамилии, имени и даты рождения. Напишите эффективную по...

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

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

Вывести фамилию, имя и дату рождения студентов второго курса
1- Создать массив из 40 записей (Фамилия, Имя, дата рождения, адрес, курс и группа). Чтение...

1
Фрилансер
3411 / 2808 / 3000
Регистрация: 08.02.2012
Сообщений: 7,962
Записей в блоге: 1
25.06.2012, 12:52 2
Лучший ответ Сообщение было отмечено Ирина Алейник как решение

Решение

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
Type Vozr=Record
     Fam:string[20];
     Name:string[20];
     D:1..31;
     M:1..12;
     G:1800..2100;
     End;
Var  A:array[1..100] of Vozr;
     i,n,k,imax:integer;
     max:Vozr;
Begin
     write('Введите кол-во людей в списке: ');readln(n);
     For i:=1 to n do
      Begin
       writeln('Введите информацию о ',i,'-ом человеке: ');
       write('Фамилия: ');readln(A[i].Fam);
       write('Имя: ');readln(A[i].Name);
       write('День рождения: ');readln(A[i].D);
       write('Месяц рождения: ');readln(A[i].M);
       write('Год рождения: ');readln(A[i].G);
      End;
     max:=A[1];{Самым старым делаем первого}
     For i:=2 to n do
      Begin
       if A[i].G>max.G then 
        Begin
         max:=A[i];
         imax:=i;
        End;
       if (A[i].G=max.G)and(A[i].M>max.M) then
        Begin
         max:=A[i];
         imax:=i;
        End;
       if (A[i].G=max.G)and(A[i].M=max.M)and(A[i].D>max.D) then 
        Begin
         max:=A[i];
         imax:=i;
        End;
      End;
     k:=1;
     For i:=1 to n do
      if (A[i].G=max.G)and(A[i].M=max.M)and(A[i].D=max.D)and(i<>imax) then inc(k);
     if k=1 then writeln(Max.Fam,' ',Max.Name)
      else writeln('Старших: ',k);
End.
Не проверял...если что не так пиши...

Добавлено через 11 минут
Pascal
1
max:=A[1];{Самым старым делаем первого}
поменяй на
Pascal
1
max:=A[1];imax:=1;{Самым старым делаем первого}i
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.06.2012, 12:52

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Среди студентов группы найти имя и фамилию самого старшего
Не могу написать программу по теме Комбинированный тип. Задание: среди студентов группы найти имя...

Определить класс с именем NOTE, содержащий имя, фамилию, номер телефона и дату рождения
Описать структуру с именем NOTE, содержащую следующие поля: • фамилия, имя; • номер телефона; •...

Определить класс с именем NOTE, содержащий имя, фамилию, номер телефона и дату рождения
1. Определить класс с именем NOTE, содержащий следующие поля: - фамилия, имя; - номер телефона;...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.