![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 29.04.2009
Сообщений: 5
|
![]()
Ребята помогайте, сил ни каких уже нет!
Проблема заключаеться в следующем, при выполнении процедуры конкретно в модуле выдает результат зуками, ну кто читает поймет, т.е не буквы а страшные символы.И в тоже время если процедуру записать просто как программу, а не процедуру и работать без вызова, то она отличьно работает!!!! И еще иногда переменным присваиваеться значение из прошлых запусков программы. Повторюсь, такие проблемы только при зписи тела в виде модуля, просто так прога работеет!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!! program lab_11; uses modul,crt; var w:integer; s1,s2:string; BEGIN clrscr; write('Введите первую строку: ');readln(s1); write('Вторую: ');readln(s2); writeln; repeat writeln('1 - Обмен самого большого слова первой стркис самым маленьким из второй'); readln(w); writeln('========================== ============================'); case w of 1:F1(s1,s2); 5:w:=5; end; until w=5; END. А ТЕПЕРЬ САМ МОДУЛЬ!!!!!!!!!!!!!!!!!!!!!!! unit MODUL; interface procedure F1(s1,s2:string); implementation procedure F1(s1,s2:string); var sl1,sl2,sl:string; i,j,n1,n2,k1,k2,n,k:integer; BEGIN i:=1;j:=1; repeat if s1[i]=' ' then while (s1[i]=' ') and (i<length(s1)) do inc(i); if s1[i]<>' ' then begin n:=i; while (s1[i]<>' ') and (i<=length(s1)) do inc(i); k:=i; ![]() sl:=copy(s1,n,k-n); if length(sl1)=0 then begin sl1:=sl;n1:=n;k1:=k; end; if (length(sl1)<length(sl)) then begin sl1:=sl;k1:=k;n1:=n; end; end; until i>=length(s1); n:=1;k:=1; repeat if s2[j]=' ' then while (s2[j]=' ') and (j<length(s2)) do inc(j); if s2[j]<>' ' then begin n:=j; while (s2[j]<>' ') and (j<=length(s2)) do inc(j); k:=j; sl:=copy(s2,n,k-n); if length(sl2)=0 then begin sl2:=sl;n2:=n;k2:=k; end; if (length(sl2)>length(sl)) then begin sl2:=sl;k2:=k;n2:=n; end; end; until j>=length(s2); delete(s1,n1,k1-n1); insert(sl2,s1,n1); delete(s2,n2,k2-n2); insert(sl1,s2,n2); writeln; writeln('Первое слово:',sl1,'#'); writeln('Второе слово:',sl2,'#'); writeln; writeln('Превоя строка после изменения: ',s1); writeln('Вторая строка: ',s2); readln; END; END.{MODUL} |
![]() |
![]() |
![]() |
#2 |
Oldschool geek
Форумчанин
Регистрация: 09.03.2009
Сообщений: 611
|
![]() Код:
|
![]() |
![]() |
![]() |
#3 | |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 123
|
![]() Цитата:
на сколько я понял программа выполняется до тех пор пока не будет введена цифра 5.И при этом все проведенные операции над строками необходимо каждый раз сохранять. |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Модуль | ponchikpk | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 15.05.2009 11:14 |
Модуль Graph | Викдон | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 12.11.2008 10:54 |
модуль RasUnit | beegl | Компоненты Delphi | 2 | 28.06.2008 20:22 |
Модуль Graph | LEX.darnica | Помощь студентам | 13 | 27.11.2007 19:15 |