Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2011, 14:44   #1
iron_cross
Пользователь
 
Аватар для iron_cross
 
Регистрация: 23.11.2010
Сообщений: 29
По умолчанию Исправить ошибки в проге Turbo Pascal

Есть прога, и есть конечно ошибки немогуу их исправить, слишком мало у меня знаний. Помогите исправить ошибки. Очень срочно:

[ATTACH]WAR.rar[/ATTACH]
Вложения
Тип файла: txt WAR.txt (10.3 Кб, 150 просмотров)
iron_cross вне форума Ответить с цитированием
Старый 04.02.2011, 15:52   #2
Ирискин
 
Регистрация: 04.02.2011
Сообщений: 7
По умолчанию

лучше бы вы написали какую конкретно ошибку выдает: все-таки так проще, чем полностью читать ваш код, расшифровывать что вы там сделали и говорить вам где ошибка
Ирискин вне форума Ответить с цитированием
Старый 04.02.2011, 16:11   #3
iron_cross
Пользователь
 
Аватар для iron_cross
 
Регистрация: 23.11.2010
Сообщений: 29
По умолчанию

главная проблема это меню программы, не работают клавиши меню вниз и вверх.
iron_cross вне форума Ответить с цитированием
Старый 04.02.2011, 23:50   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) в вашем примере отрабатывается ТОЛЬКО нажание клавиши вниз, но оно там совсем корявенькое..
хотя бы измените его на такое:
Код:
    if ch = chr(0) then
    begin ch := readkey; 
    case ch of
        chr(80): 
          begin
            gotoxy(x, y + punkt - 1);
            write(menu[punkt]);
            punkt := punkt + 1;
            if punkt > 6 then  punkt := 1;
            textattr := sel;
            gotoxy(x, y + punkt - 1);
            write(menu[punkt]);
            textattr := norm;
          end;
      end; { case of;}

2) а вообще, посмотрите пример реализации меню вот такой:
Код:
{ Пример создания и использования меню }
program menu2;
uses Crt;
const
     NORM=$17; { цвет невыделеного пункта }
     SEL=$70;  { цвет выделенного пункта }
     N=3;      {количество пунктов в меню}
var
     menu:array[1..N] of string[12];{ названия пунктов меню }
     punkt:integer;  { номер выделенного пункта }
     ch:char;        { введенный символ }
     x,y:integer;    { координаты первой строки меню }

Procedure punkt1;
begin
     ClrScr;
     writeln('Процедура 1.Нажмите <Enter> для продолжения.');
     readln;
end;

Procedure punkt2;
begin
     ClrScr;
     writeln('Процедура 2.Нажмите <Enter> для продолжения.');
     readln;
end;

Procedure MenuToScr;{ вывод меню на экран }
var i:integer;
begin
     ClrScr;
     for i:=1 to N do begin
          GoToXY(x,y+i-1);
          write(menu[i]);
     end;
     TextAttr:=SEL;
     GoToXY(x,y+punkt-1);
     write(menu[punkt]);{ выделим строку меню }
     TextAttr:=NORM;
end;
{ основная программа }
begin
     menu[1]:=' Действие 1 ';
     menu[2]:=' Действие 2 ';
     menu[3]:=' Выход ';
     punkt:=1;
     x:=5;
     y:=5; TextAttr:=NORM;
     MenuToScr;
     repeat
          ch:=ReadKey;
          if ch=char(0) then begin
               ch:=ReadKey;
               case ch of
                    chr(80):{ стрелка вниз }
                         if punkt<N then begin
                              GoToXY(x,y+punkt-1);
                              write(menu[punkt]);
                              punkt:=punkt+1;
                              TextAttr:=SEl;
                              GoToXY(x,y+punkt-1);
                              write(menu[punkt]);
                              TextAttr:=NORM;
                         end;
                    chr(72):{ стрелка вверх }
                         if punkt>1 then begin
                              GoToXY(x,y+punkt-1);
                              write(menu[punkt]);
                              punkt:=punkt-1;
                              TextAttr:=SEl;
                              GoToXY(x,y+punkt-1);
                              write(menu[punkt]);
                              TextAttr:=NORM;
                         end;
                 end;
              end
          else
               if ch=chr(13) then begin { нажата клавиша <Enter> }
                    case punkt of
                         1:punkt1;
                         2:punkt2;
                         3:ch:=chr(27);{ выход }
                    end;
                    MenuToScr;
               end;
     until ch=chr(27);{ 27 - код <Esc> }
end.
__________________
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.02.2011, 05:08   #5
iron_cross
Пользователь
 
Аватар для iron_cross
 
Регистрация: 23.11.2010
Сообщений: 29
По умолчанию

всё вродебы меню заработало, но почему он не хочет вводить данные, что опять не так. И что интересно программа хочет создать файл ''airbase'' можно ли совсем убрать этот файл чтоб он его не создавал и не обращался к нему.

WAR2.rar
program.txt

Последний раз редактировалось iron_cross; 05.02.2011 в 05:13.
iron_cross вне форума Ответить с цитированием
Старый 05.02.2011, 05:54   #6
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

строка 25
Код:
procedure Menutoscr;
var
   i:integer;
begin
...
строка 270
Код:
Procedure MenuToScr;{ ўлў®¤ ¬Ґ*о ** нЄа** }
var i:integer;
begin
...
ты или делаеш одно и то же 2 раза, или назвал одним именем 2 процедуры
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 05.02.2011, 07:17   #7
iron_cross
Пользователь
 
Аватар для iron_cross
 
Регистрация: 23.11.2010
Сообщений: 29
По умолчанию

у вас прога заработала? И что еще можно удалить для нормальной работы проги?

почему при создании нового рейса, не работает процедура new_reise. Меню работает само по себе, как свезать меню с процедурами?

Последний раз редактировалось Stilet; 06.02.2011 в 12:10.
iron_cross вне форума Ответить с цитированием
Старый 06.02.2011, 12:16   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Потому что у тебя вызывается совсем другая процедура:
Цитата:
case punkt of
1unkt1;
а нужно
Код:
                    case punkt of
                         1:new_reis;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.02.2011, 14:20   #9
iron_cross
Пользователь
 
Аватар для iron_cross
 
Регистрация: 23.11.2010
Сообщений: 29
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Потому что у тебя вызывается совсем другая процедура:

а нужно
Код:
                    case punkt of
                         1:new_reis;
я все так сделал. Запустил прогу ввел новый рейс, дальше вышел в меню. Хотел посмотреть базу данных, а pascal мне говорит: Error 100: Disk read error. И это уже надоедает. Можно ли сделать так чтобы он не создавал этот файл и не обращался к нему.
iron_cross вне форума Ответить с цитированием
Старый 06.02.2011, 16:12   #10
iron_cross
Пользователь
 
Аватар для iron_cross
 
Регистрация: 23.11.2010
Сообщений: 29
По умолчанию

Вот сам файл, может кто нибудь поможет, надо доделать прогу, почему прога не хочет работать. Надо хотябы так сделать рейс, поиск рейса и вывод информации поиска и всё. Уже башка трещит.

new_pas.txt

Еще старался написать прогу на C++ но там тоже синтаксические ошибки выдаёт, вродебы смотрел все верно, ребята посмотрите пожалуста, если есть ошибки исправьте если не трудно

new_cpp.txt

Последний раз редактировалось iron_cross; 06.02.2011 в 16:17.
iron_cross вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибки в проге. Тема Простые циклы. 666Pupsik666 Общие вопросы C/C++ 0 05.01.2011 21:11
Как исправить ошибку в проге VBA grinder Microsoft Office Excel 5 23.06.2010 09:57
С,ошибки в проге Aptemis Помощь студентам 3 20.04.2010 16:57
квест- найти ошибки в проге... BadSanta Помощь студентам 1 16.03.2009 21:48
Исправте ошибки в проге для Делфи! Toxass Общие вопросы Delphi 2 17.12.2008 02:01