Помощник
Здравствуйте, гость ( Вход | Регистрация )
|
|
21:04:2008, 04:56
|
|
Новенький ![]() Группа: Программист Сообщений: 33 Регистрация: 12:11:2007 Пользователь №: 13 656 Специализация: Программист (Студент!)! Репутация: 0
|
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. Задача выдаёт не тот результат, что не так подскажите пожалуйста! Сообщение отредактировал European - 21:04:2008, 06:39
Причина редактирования: Установка тегов кода
|
|
Сообщение
#1
|
|
![]() |
|
|
21:04:2008, 07:15
|
|
============== ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 1 740 Регистрация: 11:01:2007 Пользователь №: 8 750 Специализация: specialist Репутация: 27
|
|
|
Сообщение
#2
|
|
|
|
21:04:2008, 12:06
|
|
Продвинутый ![]() ![]() Группа: Программист Сообщений: 100 Регистрация: 27:02:2004 Пользователь №: 296 Репутация: 5
|
Проверить нечем, но мне подозрительно вот это сравнение, разве массивы можно сравнивать как строки?
Код 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. |
|
Сообщение
#3
|
|
|
|
22:04:2008, 17:10
|
|
Новенький ![]() Группа: Программист Сообщений: 33 Регистрация: 12:11:2007 Пользователь №: 13 656 Специализация: Программист (Студент!)! Репутация: 0
|
Не помогает, всё равно не то выводит, и вести ничего нельзя
|
|
Сообщение
#4
|
|
|
|
22:04:2008, 17:39
|
|
Продвинутый ![]() ![]() Группа: Программист Сообщений: 100 Регистрация: 27:02:2004 Пользователь №: 296 Репутация: 5
|
А объясните, пожалуйста, как Вам удалось переменной Kniga[1,1].family типа packed array [1..9] of char присвоить значение 'Сидоров' типа packed array [1..7] of char.
При добавлении нужного количества пробелов, программа выдаёт "Сидоров". Или по-вашему, это "не тот результат"? |
|
Сообщение
#5
|
|
|
|
23:04:2008, 05:04
|
|
Новенький ![]() Группа: Программист Сообщений: 33 Регистрация: 12:11:2007 Пользователь №: 13 656 Специализация: Программист (Студент!)! Репутация: 0
|
И в правду, всё нормально!
Спасибо всем за помощь! |
|
Сообщение
#6
|
|
![]() |
|
Текстовая версия | Сейчас: 16:05:2008 - 17:13 |