1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
перенос с FPC на TP, писала сначала на фрипаскале. дома на борланд не работает.
пишет Tуpe identifier expected там, где первая процедура Merge. (Процедуры с открытыми параметрами)
program SortArrays; uses wincrt; var a1, a2, a3: array [0..99] of integer; { a1, a2, a3 arrays } i, len3, tempRes: integer; { counters, temp result vars etc. }
procedure Merge(a1, a2: array of integer; var a3: array of integer; var len3: integer); { merge array procedure } var j, k, m: integer; begin len3 := 0;
j := 0; { initialize the counter } while (a1[j] <> -1) do { if number >= 0 } begin a3[len3] := a1[j]; { append every element of a1 to a3 array } j := j + 1; { increase counter } len3 := len3 + 1; { increase counter } end;
j := 0; { reset counter } while (a2[j] <> -1) do { if number >= 0 } begin a3[len3] := a2[j]; { append every element of a2 to a3 array } j := j + 1; { increase counter } len3 := len3 + 1; { increase counter } end;
{ Bubble sorting } for k := len3 - 1 downto 0 do for m := 0 to k do if ((a3[m] > a3[m + 1]) and (a3[m + 1] <> -1)) then begin tempRes := a3[m]; a3[m] := a3[m + 1]; a3[m + 1] := tempRes; end; end;
begin len3 := 0; { init variable }
for i := 0 to high(a1) - 1 do a1[i] := -1; { initialize array }
Write('Fill elements of array (a1): '); { show message } for i := 0 to high(a1) - 1 do { each element of a1 } begin Read(a1[i]); { Read user entries } if (a1[i] = -1) then break; { break if user entered -1 } end;
Write('Fill elements of array (a2): '); { show message } for i := 0 to high(a2) - 1 do { each element of a2 } begin Read(a2[i]); { Read user entries } if (a2[i] = -1) then break; { break if user entered -1 } end;
Merge(a1, a2, a3, len3); Write('a3 items: '); { show message } for i := 1 to len3 do begin if (a3[i] >= 0) then Write(a3[i], ' ') else break; { show a3 items} end; WriteLn; Write('a3 length: ', len3); { show a3 length } end.
В следующий раз буду закрывать сразу за одно нарушение.
Добавлено через 9 мин.
Цитата(bucket @ 13.11.2009 4:01)
пишет Tуpe identifier expected там, где первая процедура Merge. (Процедуры с открытыми параметрами)
У меня все откомпилилось, как в BP 7.0, так и в FPC (во FreePascal dialect и в Turbo Pascal compatible модах).
Добавлено через 5 мин. На всякий случай - включи Extended Syntax и Open Parameters в меню Options -> Compiler (хотя у меня без них тоже компилится). И - какая у тебя версия BP?
--------------------
я - ветер, я северный холодный ветер я час расставанья, я год возвращенья домой