Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Что то не работает?
Форум программистов > Системное программирование > Delphi и Pascal > Delphi - FAQ
ЖэКЫЧ
CODE
Program M65;
uses crt;
type slovo = packed array [1..9] of char;
Number_Phone=100000..999999;
Znakom=record
Family:slovo;
Number:Number_Phone;
end;
Page=array[1..20] of znakom;
zapisnaia=array[1..20] of page;
Procedure Fam(Zp:zapisnaia; Nt:Number_Phone; var F:slovo);
var
i,l:integer;
ext:boolean;
begin
ext:=false;
i:=0;
repeat
inc(i);
l:=0;
repeat
inc(l);
if zp[i,l].Number=nt then begin
f:=zp[i,l].family;
ext:=true;
end;
until (l=20) or (ext);
until (i=20) or (ext);
end;
var
Kniga:zapisnaia;
num:Number_Phone;
f:slovo;
begin
randomize;
clrscr;
f:=' ';
Kniga[1,1].number:=111111;
Kniga[1,1].family:='Сидоров';
Kniga[2,1].number:=211111;
Kniga[2,1].family:=' ‘Петров';

fam(kniga,111111,f);
if f<>' ' then writeln('family: ',f) else writeln('family not found');
readln;
end.



Задача выдаёт не тот результат, что не так подскажите пожалуйста!
sax_ol
Цитата(ЖэКЫЧ @ 21:04:2008 - 06:56) *
i:=0;
...
l:=0;
?
Yason
Проверить нечем, но мне подозрительно вот это сравнение, разве массивы можно сравнивать как строки?
Код
if f<>'          ' then writeln('family: ',f) else writeln('family not found')


Кроме того, в процедуру передаётся массив размером 20*20*(9+4)=5200, не каждый стек это выдержит. Лучше так:
Цитата
Procedure Fam(const Zp:zapisnaia; Nt:Number_Phone; var F:slovo);

P.S. Не помню, понимает ли Turbo Pascal const перед параметром, если нет - заменить на var.
ЖэКЫЧ
Не помогает, всё равно не то выводит, и вести ничего нельзя
Yason
А объясните, пожалуйста, как Вам удалось переменной Kniga[1,1].family типа packed array [1..9] of char присвоить значение 'Сидоров' типа packed array [1..7] of char.
При добавлении нужного количества пробелов, программа выдаёт "Сидоров". Или по-вашему, это "не тот результат"?
ЖэКЫЧ
И в правду, всё нормально!
Спасибо всем за помощь! rolleyes.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2008 IPS, Inc.