Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2018, 00:25   #1
AnnetC
Новичок
Джуниор
 
Регистрация: 13.02.2018
Сообщений: 1
По умолчанию Структура: Найти работника с возрастом, попадающим в заданный диапазон

Запись с полями: ФИО работника; возраст; домашний адрес.
Найти работника с минимальным возрастом, попадающим в диапозон 20-30 лет.
Начало программы идет вот так:
Код:
Type 
rec=record 
FIO:string[30]; 
Vozr:integer; 
adress:string[30]; 
end; 
mas=array[1..10] of rec;
var
f: text;e1:integer;m:mas;

Procedure inp(var a:mas;var n:integer);{Процедура ввода} 
var i:integer; 
begin 
readln(n);
for i:=1 to n do 
begin 
readln(f,a[i].FIO); 
readln(f,a[i].Vozr); 
readln(f,a[i].adress);
end; 
end;  
Procedure ext(a:mas;n:integer); {Процедура вывода} 
var i:integer;
begin
for i:=1 to n do
begin
writeln(a[i].FIO);
writeln(a[i].Vozr);
writeln(a[i].adress);
end;
end;
Begin 
assign(f,'file.txt'); 
reset(f); 
inp(m,e1);
ext(m,e1);
end.
Самый главный вопрос как "Найти работника с минимальным возрастом, попадающим в диапозон 20-30 лет."
file.txt
AnnetC вне форума Ответить с цитированием
Старый 13.02.2018, 08:16   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Массив тут нах не нужен. Всё делается в одном цикле чтения записей из файла.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 13.02.2018, 08:19   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Абсолютно также, как и в реальной жизни. Программирование это не какая-то магия. Ищем первого, у которого возвраст попадает в нужный диапазон. Берем его за текущий минимум. Далее проверяем остальных, если попадает в критерии и менбше текущего минимума, то запоминаем и т.д.
p51x на форуме Ответить с цитированием
Старый 13.02.2018, 09:35   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от AnnetC Посмотреть сообщение
Код:
var
f: text
простите, а почему файл текстовый, а не типизированный файл? в подобных задачах с типизированным работать - самое милое дело.


Цитата:
Сообщение от AnnetC Посмотреть сообщение
Код:
readln(n);
for i:=1 to n do 
begin 
readln(f,a[i].FIO);
Это никуда вообще не годится! Откуда пользователь может знать, сколько записей в вашем текстовом файле?! А если он их введёт неверно? Меньше, чем есть, тогда записи в конце файла не будут обработаны вообще. Введёт больше, чем есть, тогда будет ошибка чтения файла (невозможно прочитать из файла, если он закончился).
Это нужно переделывать.

решите эти проблемы.
тогда и найти работника с минимальным возрастом, попадающим в диапазон 20-30 лет, не составит труда.
Тем более, что Вам уже рассказали, как это сделать.
Если что-то непонятно - спрашивайте!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Присвоить нулевое значение числам попадающим в интервал Sovetnik Общие вопросы C/C++ 14 14.04.2016 05:35
Заданный одномерный массив. Найти сумму элементов массива, которые удовлетворяют условию ( Delphi ) Святослав2703 Помощь студентам 5 03.07.2013 16:21
Как проверить, входит ли ячейка в заданный именованный диапазон? olga_arb Microsoft Office Excel 1 06.02.2013 10:08
Составить условие проверки вхождения числа в заданный диапазон (Delphi) Hylim1991 Помощь студентам 1 22.03.2012 08:16
переход на заданный сайт или как вставить в заданное место заданный текст Biker89 Общие вопросы Delphi 23 29.05.2011 01:59