Вторник, 07.01.2025
Pascal 4 All
[ · Новые сообщения · Участники · Правила форума · Поиск · RSS ]

 

  • Страница 1 из 1
  • 1
Модератор форума: Seqular, Pavel  

Кто знает, как это сделать?
FernandoДата: Среда, 07.12.2011, 16:26 | Сообщение # 1
Новичок
Группа: Пользователи
Сообщений: 8
Репутация: 0
Замечания: 0%
Статус: Offline
1. Имеется текстовый файл, содержащий такую информацию:
Даты рождения сотрудников:
1. Иванов – 05.03.1980
2. Петров – 18.11.1981
. . .
30. Сидоров – 09.08.1979

Вывести на экран монитора фамилии сотрудников, родившихся в 1980 году и позже.

2.Имеется текстовый файл, содержащий такую информацию:
Даты рождения сотрудников:
1. Иванов – 05.03.1980
2. Петров – 18.11.1981
. . .
30. Сидоров – 09.08.1979

Вывести на экран монитора фамилии сотрудников, родившихся в марте.
 
SeqularДата: Четверг, 08.12.2011, 18:05 | Сообщение # 2
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Fernando,
1 задача.

Получаем 2 последних символа строки, преобразуем в число (можно 4 символа, для верности).
Если > 1980, то выводим на экран символы с 1 по (позиция первого пробела - функция Pos поможет)

2 задача.
Смысл тот же, только получаем не последние 4 символа, а последние 7, потом от этой строки забираем только первые 2.
почитай справку по функции Copy. Понятно объяснил? smile


Поддерживаю также проект сообщество молодых сисадминов
 
FernandoДата: Четверг, 08.12.2011, 22:49 | Сообщение # 3
Новичок
Группа: Пользователи
Сообщений: 8
Репутация: 0
Замечания: 0%
Статус: Offline
Извиняюсь конечно, но ничего не понял wacko Все мои познания ограничиваются написанием Begin и End, и перепечитавынием готового кода. Все равно спасибо
 
SeqularДата: Четверг, 08.12.2011, 23:00 | Сообщение # 4
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Fernando, Завтра на работе постараюсь уделить время твоей задачке. А пока - сделай доброе дело. Кликни по любому объявлению в разделе "Реклама" на главной странице нашего сайта. smile один раз всего. Это будет как благодарность.

Поддерживаю также проект сообщество молодых сисадминов
 
FernandoДата: Четверг, 08.12.2011, 23:11 | Сообщение # 5
Новичок
Группа: Пользователи
Сообщений: 8
Репутация: 0
Замечания: 0%
Статус: Offline
No problem
 
SeqularДата: Пятница, 09.12.2011, 09:39 | Сообщение # 6
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Code

Program BirthDays;
Uses CRT;
Var f: text;
     s, fam, sYYYY, sMM: String;
     i: Byte;
     iYYYY, iMM, code: Integer;
Begin
ClrScr;
Assign(f, 'INPUT.TXT');
ReSet(f);
While not (EoF(f)) do
       Begin
       Readln(f, s);
       fam := Copy(s, Pos(' ',s)+1, length(s) - Pos(' ',s)+1);
       sYYYY := Copy(fam, length(fam)-3,4);
       Val(sYYYY, iYYYY, code);
       fam := Copy(fam, 1, Pos(' ',fam)-1);
       if (iYYYY >= 1980) then Writeln(fam,' родился в ',iYYYY,' году');
       End;
Close(f);
Readkey;
End.


Прикрепляю файл INPUT.TXT (там не 30 значений, но не суть важно. Программа будет работать. Обратите внимание, там кодировка DOS (866). Если будете открывать в блокноте, ставьте шрифт Terminal.
Прикрепления: INPUT.txt (0.2 Kb)


Поддерживаю также проект сообщество молодых сисадминов
 
SeqularДата: Пятница, 09.12.2011, 09:42 | Сообщение # 7
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Code
Program BirthDays;
Uses CRT;
Var f: text;
     s, fam, sYYYY, sMM: String;
     i: Byte;
     iYYYY, iMM, code: Integer;
Begin
ClrScr;
Assign(f, 'INPUT.TXT');
ReSet(f);
While not (EoF(f)) do
       Begin
       Readln(f, s);
       fam := Copy(s, Pos(' ',s)+1, length(s) - Pos(' ',s)+1);
       sMM := Copy(fam, length(fam)-6,2);
       Val(sMM, iMM, code);
       fam := Copy(fam, 1, Pos(' ',fam)-1);
       if (iMM = 3) then Writeln(fam,' родился в ',iMM,' месяце');
       End;
Close(f);
Readkey;
End.


- переделка под вторые условия. Аналогично.


Поддерживаю также проект сообщество молодых сисадминов
 
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2025
Используются технологии uCoz
javascript:;" rel="nofollow" onclick="loginPopupForm(); return false;