Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
2 / 2 / 0
Регистрация: 16.03.2012
Сообщений: 20
1

Найти телефон работника по его фамилии и инициалам

31.05.2012, 23:20. Показов 3861. Ответов 2
Метки нет (Все метки)

Дан файл, который содержит номера телефонов работников учреждения. Указывается фамилия работника, его инициалы и номер телефона. Найти телефон работника по его фамилии и инициалам.
Помогите пожалуйста((
1
Лучшие ответы (1)
Заказывайте контрольные, курсовые и дипломы здесь.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2012, 23:20
Ответы с готовыми решениями:

Найти телефон сотрудника по его фамилии и инициалам
Создать файл , содержащий номера телефонов сотрудников учреждения . Указывается фамилия сотрудника...

Файл записей: Найти телефон сотрудника по его фамилии и инициалам
Дано файл f, содержащий номера телефонов сотрудников учреждения: указывается фамилия сотрудника,...

Найти номер студента по его фамилии и инициалам
дано файл. В нем находятся номера телефонов студентов их ФИО . найти номер студента по его фамилией...

Найти номер телефона сотрудника по его фамилии и инициалам
Help plz Дана переменная Т, которая содержит номера телефонов сотрудников учреждения:...

2
20 / 20 / 15
Регистрация: 31.03.2012
Сообщений: 28
02.06.2012, 02:07 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
Program th;
var f1:text;
  a,b,c,k,i,n,r:integer;
  s1,s2,s3: string;
begin
assign(f1,'C:\INPUT.txt');           {Укажите путь до своего файла}
reset(f1);
writeln('введите Ф.И.О');readln(s1); {Просим ввести и читаем введенную строку}
n:=length(s1);                       {Узнаём длину введенной строки}
while not SeekEof(f1) do begin       {Пока не конец файла выполняем...}
readln(f1,s2);                       {Считваем строки из файла, по одной за цикл}
k:=k+1;                              {Считаем количество строк записанных в файле}
c:=0;
for i:=1 to n do if s1[i] = s2[i] then c:=c+1; {Каждый символ считанной строки сравниваем с
                                                каждым символом строки введенной с клавиатуры
                                                и суммируем количество совпавших символов}
if c=n then a:=k;              {Если количество совпавших символов равно длине строки,
                                то сохраняем её номер}
end;
if a=0 then writeln('такая запись не найдена') else
begin
reset(f1);                           {Переводим "курсор" в начало файла}
for i:=1 to a do readln(f1,s2);      {Считываем строку по сохранённому номеру}
s3:= copy(s2,n+1,7);           {Копируем номер телефона из только что считанной строки в
                                новую строку}
val(s3,b,r);
writeln('телефон: ',b);
end;
close(f1);
end.
Паскаль не дружит с кириллицей поэтому запись в файле должна иметь следующий вид:
Ivanov I.K. 245234
Petrov V.R. 865434

Так же возможен вариант:
adt 335253
rthfddf 454633
dfsdfd 436342

Попробуйте поэксперементировать с записями.

s3:= copy(s2,n+1,7); n+1 даёт возможность перевести курсор через один пробел, +1 можно заменить на любое нужное количество пробелов. 7 - длинна 6-ти значного телефонного номера, соответственно для 7- значного номера должна быть 8 и т.д.

Упрощенный вариант программы
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
Program th2;
var f1:text;
  a,c,k,i,n:integer;
  s1,s2: string;
begin
assign(f1,'C:\INPUT.txt');
reset(f1);
writeln('введите Ф.И.О');readln(s1);
n:=length(s1);
while not SeekEof(f1) do begin
readln(f1,s2);
k:=k+1;
c:=0;
for i:=1 to n do if s1[i] = s2[i] then c:=c+1;
if c=n then a:=k;
end;
if a=0 then writeln('такая запись не найдена') else
begin
reset(f1);
for i:=1 to a do readln(f1,s2);
writeln('телефон ',s2);
end;
close(f1);
end.
Здесь не имеет значения количество пробелов между ФИО и телефоном (их даже может не быть), а так же не важна длина телефонного номера (в разумных пределах).
P.S. Программу всё ещё можно сократить.
P.P.S. Если нужен только телефонный номер, вам нужна первая программа, в противном случае вторая программа лучше.
2
0 / 0 / 0
Регистрация: 04.06.2015
Сообщений: 1
05.06.2015, 10:19 3
Спасибо большое за программу , вот только у меня её не приняли т.к объяснить не смог , мб кто-нибудь сможет расписать что да как
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.06.2015, 10:19

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

Найти телефон сотрудника по его фамилии и инициалам
дан файл f1 fкоторый содержит номера телефонов сотрудников учреждения:указывается фамилия...

Найти телефон сотрудника по его фамилии и инициалам
Сижу в кабинете и не могу решить эту задачу так как тему ету почти не знаю (знаю только основное),...

Найти телефон сотрудника по его фамилии и инициалам.
Дан файл f, содержащий различные даты. Каждая дата - это число, месяц и год. Найти: а) год...

Получить: номер телефона сотрудника по его фамилии и инициалам
В файл Telephone записать номера телефонов сотруднико учреждения указать фамилии , инициалы,...


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

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

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