IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Поиск однофамильцев в типизированном файле
alex9910
сообщение 2.06.2012 18:15
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Мужской

Репутация: -  0  +


Нужно вывести из типизированного ф-ла однофамильцев. Типизированный файл состоит из типа запись.

Например: при запросе фамилии Петрова выводились все стоки с фамилиями Петрова и Петров.
или при запросе : Петров выводились и Петров и Петрова.
Как можно сделать проверку на подстановку или отброс окончаний?

Всем заранее спасибо!

procedure print_usl;
begin
reset(F);
if (filesize(F) <> 0) then
begin
repeat
clrscr;
Writeln('Введите ФИО студента ');
readln(Str_v);
{cp:=copy()}
Chek_DL_SL(Str_v, 15);
Chek_FIO(Str_v);
if f1 = false then
write(' ');
until (f1 = true) and (f2=true);
str_v:=str_v;

K:=0;
While not EoF (F) do begin
read(F,S);

IF str_v[length(str_v)]= 'а' then
begin
s.fio_stud:=copy(str_v, 1, length(str_v)-1);
end else
begin
s.fio_stud:=str_v;

print_shapka;
k:=1;

writeln;
Write( #179);
Write( S.FIO_Stud:16);
Write( #179);
Write( S.Stip:9);
Write( #179);
Write( S.FIO_mum:14);
Write( #179);
Write( S.zp_mum:8);
Write( #179);
Write( S.FIO_ot:14);
Write( #179);
Write( S.zp_ot:8);
Write( #179);
writeln;

end;
end;
if k=0 then writeln('Студентов с фамилией ',str_v, ' не найдено' );
readkey;
clrscr;
close(F);
Osh;

end
else
begin
clrscr;
Writeln('Файл пуст. Записи не найдены');
close(F);
osh;
readkey;
clrscr;
end;
end;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
IUnknown
сообщение 3.06.2012 14:33
Сообщение #2


a.k.a. volvo877
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской

Репутация: -  627  +


Цитата
Увы делалось как было написано в задании....
Задание не определяет (по крайней мере - не должно определять) способ решения. И не определяет, где описывать переменные, и переменные какого типа. И где ставить комментарии тоже не определяет задание. Задание ставит задачу, которую необходимо решить. А уж как ее программист будет решать - это не его (задания) дело. Твою программу можно влет сократить в 5 раз. В пять!!! Это что, задание так требует, чтобы в файле Redakt.pas было больше 600 строк? Да там и 150 по хорошему - перебор. Так что не надо валить на задание. Все зависит от того, кто это задание выполняет.

Цитата
Если в файле фамилии без инициалов то все прекрасно! А вот с инициалами ничего не находит....
А надо было сразу думать, а не пихать фамилию вместе с инициалами в одно поле. Ты что думаешь, это оттого, что программисту нечего было делать в любой нормальной базе фамилия хранится отдельно, имя - отдельно, а отчество - отдельно? Или ты думал, что все программисты недоумки, а ты вот один такой мудрый, догадался все запихать в одно поле, чтоб особо не заморачиваться? Ну, догадался запихать - догадывайся и переделывать теперь smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 3.06.2012 18:36
Сообщение #3


Гость






Цитата(IUnknown @ 3.06.2012 14:33) *

Задание не определяет (по крайней мере - не должно определять) способ решения. И не определяет, где описывать переменные, и переменные какого типа. И где ставить комментарии тоже не определяет задание. Задание ставит задачу, которую необходимо решить. А уж как ее программист будет решать - это не его (задания) дело. Твою программу можно влет сократить в 5 раз. В пять!!! Это что, задание так требует, чтобы в файле Redakt.pas было больше 600 строк? Да там и 150 по хорошему - перебор. Так что не надо валить на задание. Все зависит от того, кто это задание выполняет.

А надо было сразу думать, а не пихать фамилию вместе с инициалами в одно поле. Ты что думаешь, это оттого, что программисту нечего было делать в любой нормальной базе фамилия хранится отдельно, имя - отдельно, а отчество - отдельно? Или ты думал, что все программисты недоумки, а ты вот один такой мудрый, догадался все запихать в одно поле, чтоб особо не заморачиваться? Ну, догадался запихать - догадывайся и переделывать теперь smile.gif



Печать по условию задал препод однофамильцев найти....
А что редакт на 600 строк. Я даже не знаю как по другому сократить до 150 wacko.gif
 К началу страницы 
+ Ответить 
Jakeline
сообщение 19.06.2012 8:02
Сообщение #4


Гость






And I thuohgt I was the sensible one. Thanks for setting me straight.
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 1.07.2025 8:03
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"