Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
kitty31
1

Определить, есть ли в записной книжке z сведения о знакомом с фамилией f

13.05.2009, 10:09. Просмотров 1409. Ответов 2
Метки нет (Все метки)

помогите пожалуйста решить задачку в турбо паскале, очень прошу, вот:

Pascal
1
2
3
4
5
6
7
8
9
type
slovo=packed array[1..9] of char;
telefon=1000000..9999999;
person=record
       family:slovo;
       number=telefon
       end;
page=array[1..20] of person;
bloknot=array['A'..'Z'] of page;
Считая,что на каждой странице записной книжки указаны фамилии, начинающиеся с одной и той же буквы - индекса этой страницы, написать программу,с логической функцией number(z,f,n),определяющую, есть ли в записной книжке z сведения о знакомом с фамилией f, и , если есть, присваивающую параметру n номер его телефона.

Заранее огромное спасибо!!!
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.05.2009, 10:09
Ответы с готовыми решениями:

Определить, есть ли в записной книжке NB сведения о знакомом F
I) Считая, что на каждой странице записной книжки указаны фамилии, начинающиеся с одной буквы...

Составить программу, определяющую, есть ли в Блокноте сведения о знакомом с фамилией Ф и распечатать информацию о нем
Составить тип : Знакомый=record Фамилия : string; Номертелефона : integer; end;

Структуры в С++. Определить, есть ли информация в записной книжке.
7. В записной книжке указаны фамилии и номера телефонов 10 человек. Определить, есть ли в записной...

Записи. Определить, есть ли в записной книжке телефон некоторого человека
№1. В записной книжке указаны фамилии и номера телефонов 30-ти человек. Составить программу: а)...

2
Модератор
61213 / 45884 / 31669
Регистрация: 18.05.2008
Сообщений: 110,490
13.05.2009, 12:57 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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
uses crt;
type
slovo=packed array[1..9]of char;
telefon=1000000..9999999;
person=record
       family:slovo;
       number:telefon;
       end;
page=array[1..20]of person;
bloknot=array['A'..'Z']of page;
 
function Number(z:bloknot;f:slovo;var n:telefon;k:byte):boolean;
{Функция описана в задании немного неточно. 
На странице не обязательно ровно 20 записей, может быть меньше и даже 0, при тестировании я ноль и вводил на большинстве страниц, иначе очеень долго вводить данные.
Ввел параметр k-количество записей на странице
var i:char;
    j:byte;
begin
Number:=false;{считаем что фамилии нет}
for i:='A' to 'Z' do{идем по страницам блокнота}
for j:=1 to k do{идем по нужной странице до количества записей на ней}
if z[i][j].family=f then{если нашли нужную фамилию}
 begin
  Number:=true;{меняем флаг логической функции}
  n:=z[i][j].number;{запоминаем номер телефона}
  break;{дальше не ищем}
 end;
end;
var zap:bloknot;{сам блокнот}
    fm:slovo;{искомая фамилия}
    b:boolean;{переменная логического типа}
    i,c:char;{счетчики циклов по символам}
    j,k:integer;{счетчики циклов по номерам}
    a:array['A'..'Z'] of byte;{массив количеств записей на каждой странице}
begin
clrscr;
writeln('Vvedite dannye:');
for i:='A' to 'Z' do{перебираем все страницы}
 begin
  writeln('Zapishite familii na bukvu ',i);{на каждой странице фамилии на одну букву}
  write('Kolichestvo familij=');
  readln(a[i]);{запоминаем сколько фамилий на каждой странице}
  writeln('CVvedite dannye, okonchanie Esc:');
  for j:=1 to a[i] do
   begin
     writeln(' Telefon ',j);
     repeat
     write('  Family: ');
     k:=1;
     while k<9 do{фамилия из 9 букв}
      begin
       read(fm[k]);
       k:=k+1;
      end;
     readln;
     until fm[1]=i;{если первая буква неверно, повторять}
     zap[i][a[i]].family:=fm;{запоминаем фамилию}
     write('  Nomer telefona: ');
     repeat
     readln(zap[i][a[i]].number);{запоминаем номер телефона}
     until (zap[i][a[i]].number>99999)and(zap[i][a[i]].number<10000000);
   end;
 end;
clrscr;{очищаем экран от ввода}
writeln('Vvedite familiyu dlya poiska:');
for j:=1 to 9 do
read(fm[j]);{вводим фамилию для поска}
readln;
for j:=1 to a[fm[1]] do{смотрим страницу с первой буквой фамилии}
Number(zap,fm,k,b);
if not b then{если не false}
write('Nomer telefona ',zap[fm[1]][j].number){выводим телефон}
else write('Takoj familii net!');{иначе нет такого}
readln
end.
1
kitty31
13.05.2009, 17:05 3
спасибоки огромное
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2009, 17:05

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

Описать сведения о записной книжке
Пожалуйста, помогите с этим заданием :cry: 1. Описать файл записей с именем note.dat, содержащий...

Найти в записной книжке телефон по фамилии
5 В записной книжке указаны фамилии и номера телефонов 30-ти человек. Составить программу которая...

Поиск элементов в "Записной книжке"
Есть прожка для &quot;записной книги&quot;. Все заполняется, выводится. Не могу реализовать поиск по книге....

Определить есть ли в файле студенты с одинаковой фамилией
Есть текстовый файл. В котором записаны имена студентов, их фамилии и номер класса. Как сделать,что...

Определить, есть ли в группе студент с заданной фамилией
1)Задан массив структур вида GR521 с инфорамцией о группе студентов.Напсиать файл-функцию для...

Создайте файл Kniga, содержащий сведения из записной книжки
3. Создайте файл Kniga, содержащий сведения из записной книжки (фамилия, имя, отчество, номер...


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

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

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