![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 09.02.2008
Сообщений: 38
|
![]()
Народ, помогите плиз, если знаете, почему не работает.
Даны две строки. задача:объёдинение символов двух строк в выходную строку, в которой символы исходных строк чередуются через один вот код: program LAb5_brig2; uses crt; const LabText = 'c:\textlab5.txt'; {__________________PROCEDURA CHTENI9____________________________ } Procedure Chtenie(var Fname:text; var str1,str2:string); Begin Assign(fname, labText); Reset(Fname); Readln(Fname, str1); Readln(Fname, str2); close(fname); Writeln ('Perva9 stroka: ', str1); Writeln ('Vtora9 stroka: ', str2); writeln; end; Procedure New_String(Var NewSTR:string; Str1:string; str2:string; N:integer; K:integer); Var i,t,m:integer; begin t:=0; m:=1; for i:=1 to (N+K) do begin if odd(i) then begin NewSTR[i]:=Str2[i-m]; inc(m); end else begin NewSTR[i]:=STR1[i-t]; inc(t); end; inc(i); end; Writeln('New String: ', NewSTR); end; {______________________} Var str1,str2,NewSTR:string; N,K:integer; Fname:text; Begin Clrscr; Chtenie(Fname,str1,str2); writeln; N:=length(str1); K:=Length(str2); New_String(NewSTR,Str1,Str2,N,K); readln; end. Строка не выходит на экран ![]() |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]()
1. Не устанавливается длина строки - newStr[0] := CHR(N+K);
2. Лишний inc(i) в цикле for |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
![]()
Вот подремонтировал Вашу программу. Ошибок довольно много. Сейчас нормально работает. Вы посмотрите ее и если непонятно что, спрашивайте, желательно в пределах часа или завтра.
Код:
|
![]() |
![]() |
![]() |
#4 | |
Пользователь
Регистрация: 09.02.2008
Сообщений: 38
|
![]() Цитата:
.... Procedure New_String(Var NewSTR:string; Str1:string; str2:string; N:integer; K:integer); Var i,t,m:integer; begin NewSTR[0]:=CHR(N+K); t:=0; m:=1; for i:=1 to (N+K) do begin if odd(i) then begin NewSTR[i]:=Str2[i-m]; inc(m); end else begin NewSTR[i]:=STR1[i-t]; inc(t); end; end; Writeln('New String: ', NewSTR); end; ...... делал тесты сам на листке, считал...поидее алгоритм правильный, но выходит какаято чушь на экран(( |
|
![]() |
![]() |
![]() |
#5 | |
Пользователь
Регистрация: 09.02.2008
Сообщений: 38
|
![]() Цитата:
а что за команда eof и div? |
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
![]()
EOF - признак конца файла. Div - целое деление, например 4 div 2=2; 5 div 2=2; 9 div 5=1;
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 09.02.2008
Сообщений: 38
|
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Объединение ячеек | Katherina_Koval | Microsoft Office Excel | 3 | 29.07.2008 06:53 |
Объединение списков. | life_burns | Microsoft Office Excel | 5 | 05.04.2008 16:13 |
Excel max 256 строк VS user надо 300 строк | Exo | Microsoft Office Excel | 3 | 10.01.2008 17:14 |
Объединение GWT-модулей | ILester | JavaScript, Ajax | 0 | 24.10.2007 14:55 |
Объединение заказов | asale | Microsoft Office Excel | 6 | 22.10.2007 19:05 |