Страница 1 из 1

Исправьте пожалуйста мне всего несколько строк.

Добавлено: 17 май 2008, 13:59
Absent
Имеются сведения о районных библиотеках города: номер, тип(детская или взрослая), район, адрес, часы работы.
Вывести адреса и часы работы всех детских библиотек данного района
Немного не получилось

Код: Выделить всё

program ship;
{$APPTYPE CONSOLE}
uses
  SysUtils;
const
n=3;
Type
masschisla=array[1..10] of integer;
masstext=array[1..100] of string;
Var
detvzros,tip:masschisla;
nomer,adress,raion,chasi:masstext;
i:integer;
k:string;

begin
for i:=1 to n do
begin
writeln('nomer ',i,' bibkioteki:');
readln(nomer[i]);
end;

for i:=1 to n do
begin
writeln('tip ',i,' bibkioteki:');
readln(tip[i]);
end;

for i:=1 to n do
begin
writeln('raion ',i,' bibkioteki:');
readln(raion[i]);
end;

for i:=1 to n do
begin
writeln('adress ',i,' bibkioteki:');
readln(adress[i]);
end;

for i:=1 to n do
begin
writeln('chasi raboti ',i,' bibkioteki:');
readln(chasi[i]);
end;

write('vvdite raion');
readln(k);
For i:=1 to n do
begin
if (tip[i]='detskaya') and (raion[i]=k) then
writeln('biblioteka nomer  ',nomer[i],' ',adress[i],' chasi raboti ',chasi[i]);
end;
readln;
end.


Всему виной вот эти стороки :
write('vvdite raion');
readln(k);
For i:=1 to n do
begin
if (tip='detskaya') and (raion=k) then

как нужно правильно присваить значение у текста?

Re: Исправьте пожалуйста мне всего несколько строк.

Добавлено: 17 май 2008, 14:02
MOTOCoder
Прежде всего - задача явно на использование записей.

Re: Исправьте пожалуйста мне всего несколько строк.

Добавлено: 17 май 2008, 15:23
Absent
это я понимаю

Re: Исправьте пожалуйста мне всего несколько строк.

Добавлено: 17 май 2008, 18:41
MOTOCoder
Absent писал(а):это я понимаю

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

Re: Исправьте пожалуйста мне всего несколько строк.

Добавлено: 17 май 2008, 22:28
Absent
Дайте хотябы ссылку, где почитать можно об этом

Re: Исправьте пожалуйста мне всего несколько строк.

Добавлено: 17 май 2008, 22:35
_-=Flash=-_

Re: Исправьте пожалуйста мне всего несколько строк.

Добавлено: 18 май 2008, 00:01
MOTOCoder
Посмотрите в этом разделе, таких задач решено уже великое множество.

Re: Исправьте пожалуйста мне всего несколько строк.

Добавлено: 18 май 2008, 12:55
Absent
Спасибо решил

Код: Выделить всё

program shipilin_52;
{$APPTYPE CONSOLE}
uses
  SysUtils;
const
n=3;
Type
bibliotekaRecord=Record
Detskaya: String;
end;
masschisla=array[1..10] of integer;
masstext=array[1..100] of string;
Var
nomer:masschisla;
tip,adress,raion,chasi:masstext;
i:integer;
biblioteka:bibliotekaRecord;
k:string;

begin
for i:=1 to n do
begin
writeln('nomer ',i,' bibkioteki:');
readln(nomer[i]);
end;

for i:=1 to n do
begin
writeln('tip ',i,' bibkioteki:');
readln(tip[i]);
end;

for i:=1 to n do
begin
writeln('raion ',i,' bibkioteki:');
readln(raion[i]);
end;

for i:=1 to n do
begin
writeln('adress ',i,' bibkioteki:');
readln(adress[i]);
end;

for i:=1 to n do
begin
writeln('chasi raboti ',i,' bibkioteki:');
readln(chasi[i]);
end;

write('vvdite raion');
readln(k);
biblioteka.Detskaya:='detskaya';
For i:=1 to n do
begin
if tip[i]=biblioteka.Detskaya then
if raion[i]=k then
writeln('biblioteka nomer  ',nomer[i],' ',adress[i],' chasi raboti ',chasi[i]);
end;
readln;
end.

Re: Исправьте пожалуйста мне всего несколько строк.

Добавлено: 18 май 2008, 20:15
MOTOCoder
Absent писал(а):Спасибо решил


Врядли вам за такое решение хорошую оценку поставят.
Нужно все поля разместить в одной записи, т.е. что то типа
[syntax='Delphi']
Type
TLibrary=record
Num:integer;
sType:boolean;
Addres:string;
Work:string;
end;
[/syntax]