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

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

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

> Телефонный справочник, Помогите найти ошибку :)
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 19

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


Была написана програмка, простейший тел.справочник(поиск владельца по номеру и наоборот).Она правильная:
Код

program lab12_1;
uses crt;
type
sprav=record
name:string;
num:integer;
end;
var
y:array [1..5] of sprav;
z,x,i:integer;
n:string;
procedure nam;
begin
writeln('enter the name');
readln(n);
for i:=1 to 6 do begin
if i=6 then begin
writeln('Error!');
readln;
break;
end;
 if n=y[i].name then begin    {n-name}
 writeln(y[i].num);
 break;
 end else continue;
 end;end;
procedure nom;
begin
writeln('enter the number');
readln(x);
for i:=1 to 6 do begin
if i=6 then begin
writeln('Error!');
readln;
break;
end;
 if x=y[i].num then begin            {x-number}
 writeln(y[i].name);
 break;
 end else continue;
 end;end;
begin
clrscr;
with y[1] do begin
name:='man1';
num:=1;
end;
with y[2] do begin
name:='man2';
num:=2;
end;
with y[3] do begin
name:='man3';
num:=3;
end;
writeln('Enter the way of the search:');
writeln('1.by the name');
writeln('2.by the number');
readln(z);
if z=1 then nam;
if z=2 then nom;
readln;
end.

Теперь надо её передалать, используя в качестве баз данных,два текстовых файла(имена и телефоны).Но что-то не получается sad.gif
Код

program lab12_2;
uses crt;
type
sprav=record
name:string;
num:integer;
end;
var
y:array [1..5] of integer;
z,x,i:integer;
n,l:string;
a,b:text;
procedure nam;
begin
assign(a,'c:\dos\files\spr.dat');  {file name}
writeln('enter the name');
reset(a);
for i:=1 to 6 do begin
if i=6 then begin
close(a);
writeln('Error!');
readln;
break;
end;
 if n=l[i] then begin
 close(a);
 writeln(y[i]);
 break;
 end else continue;
 end;end;
procedure nom;
begin
writeln('enter the number');
readln(x);
for i:=1 to 6 do begin
if i=6 then begin
close(a);
writeln('Error!');
readln;
break;
end;
 if x=y[i] then begin
 close(a);
 writeln(y[i]);
 break;
 end else continue;
 end;end;
begin
clrscr;
assign(a,'c:\dos\files\f.dat');         {file number}
reset(a);
for i:=1 to 5 do begin
readln(a,l[i]);
readln(a,y[i]);
end;
writeln('Enter the way of the search:');
writeln('1.by the name');
writeln('2.by the number');
readln(z);
if z=1 then nam;
if z=2 then nom;
readln;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

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


Нет, девушка, вам просто необходимо со мной пообщаться по аське...
просто я в шоке...
я уже модератор полгода, но такого не видел, вы уж извините меня, такого ... просто мне как-то не по себе стало ...
Код
for i:=1 to 5 do begin
readln(a,l[i]);
readln(a,y[i]);
end;

Но переменная l описанна как строка!
Что вы этим хотите сделать? Бред, такое вообще компилироваться не должно!
Давайте задание, я вам ВСЮ программу сделаю как надо! А то исправлять это просто нет сил ... еще я вам все объясню, сделаю везде где нужно коментарии, и объяснб работу программы.
И заодно я вам объясню кое-что относительно файлов, вы немного запутались. ОК?

Сообщение отредактировано: Oleg_Z -


Прикрепленные изображения
Прикрепленное изображение

--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 





- Текстовая версия 2.06.2024 6:28
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name