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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 26.02.2011, 21:07   #1
BaronVik
Пользователь
 
Регистрация: 21.04.2010
Сообщений: 36
Сообщение Процедура(связь между переменными)

Здравствуйте уважаемые программисты. Сново прошу помощи у вас с моей неработающей программой.

Нам задали переделать программу дополнив её функциями. Я взял за основу эту программу http://programmersforum.ru/showthread.php?t=139061 .
Вот моя работа

Код:
Program Lab_2_2;
Var F1,F2:text;
    S:String;
    i,z,bykv,vhod:byte;
    c:char;
    M:array [1..100] of byte;


Procedure Open (s_proc:string);
Begin
   Write('Im9 file: ');
   Readln(s_proc);
   assign(F1,s_proc);
   {$I-}; Reset(F1); {$I+};{Prosto otkrit'}
   if IOResult = 0 then
   begin
      writeln ('File otcrit');
      readln;
   end
   else
   begin
      writeln('File neotkrit,programma okan4ivaet svoy raboty');
      readln;
      halt;
   end;
end;


procedure bykva (c_proc:char;
                 bykv_proc,vhod_proc,z_proc:byte;
                 M_proc:array of byte);
Begin
   read(F1,c_proc);
   Begin
     if (c_proc='A') or (c_proc='a') then
        inc(bykv_proc);
        inc(vhod_proc);
   end ;
   if Eoln(F1) then
   begin
      M_proc[z_proc]:=bykv_proc;
      bykv_proc:=0;
      inc(z_proc);
   end;
end;


Begin {Telo osnovnoy programmi}
   Open(s);
   begin
      while not EOF(F1) do
      bykva(c,bykv,vhod,z,M)
   end;
   Close(F1);
   assign(F2,'G:\F2.txt');
   Rewrite(F2);  {Na zapis}
   Writeln(F2,'Kol-vo vxozdenii-',vhod);
   for i:=1 to 100 do
   begin
      if M[i] <> 0 then
      WriteLn(F2,'Sroka',i,'-',M[i]);
   end;
   Close(F2);
   reset(F2);
   while not EOF(F2) do
   begin
      read(F2,c);
      write(c)
   end;
   Close(F2);
   readln;
end.
В итоге он проскакивает место

Код:
  begin
      if M[i] <> 0 then
      WriteLn(F2,'Sroka',i,'-',M[i]);
   end;
Я не понимаю почему он проскакивает и вообще почему после использования процедуры в массив M не записалось не единого значения.

ПРОСЬБА!!! Не пишите код программы,натолкните на мысль что тут нужно сделать и вообще правильным ли путём я пошёл. Хочу сам подумать,иначе ничему не научусь.


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 26.02.2011 в 22:59.
BaronVik вне форума
Старый 26.02.2011, 21:10   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Добавте var
Код:
procedure bykva (c_proc:char; 
                 bykv_proc,vhod_proc,z_proc:byte; 
                 VAR M_proc:array of byte);
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума
Старый 26.02.2011, 21:13   #3
BaronVik
Пользователь
 
Регистрация: 21.04.2010
Сообщений: 36
По умолчанию

Всё равно,не решило ни одной проблемы
BaronVik вне форума
Старый 26.02.2011, 23:04   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Я не понимаю почему он проскакивает и вообще почему после использования процедуры в массив M не записалось не единого значения.
Да потому что криво написано.
Вы бы лучше расказали, для чего у Вас процедура bykva
(она 100% неправильная), поэтому поясните что она должна (по вашему мнению) делать...
Serge_Bliznykov вне форума
Старый 27.02.2011, 10:19   #5
BaronVik
Пользователь
 
Регистрация: 21.04.2010
Сообщений: 36
По умолчанию

Всё,сам додумал в чём проблема и довёл до ума. Спасибо всем за оказанную помощь,можно закрыть тему
BaronVik вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Взаимодействие между переменными в JavaScript и РНР Timpi JavaScript, Ajax 26 04.03.2011 08:38
Связь между таблицами Hottabych БД в Delphi 2 15.11.2009 22:09
Связь между двумя ОС Яр|/||< (^_^) Общие вопросы Delphi 8 06.07.2009 20:45
Связь между файлами tae1980 Microsoft Office Excel 1 14.04.2009 20:15
Связь между формами KiberJo Общие вопросы Delphi 20 22.07.2008 21:40