KMA
Долгожитель
|
Жуть , а что ты вот здесь:
Code Sample:
while(not EOF(InpFile)) do begin readln(InpFile,InputString); outputstring:=inputstring; if(length(InputString)>50) then begin outputString:=Copy(inputString,1,50); writeln(outFile); outputString:=Copy(InputString,51,length(InputString)-50); writeln(outFile); end else writeln(outfile); writeln(inputstring); end;
пишешь в файл OutFile??? Вообще, чтобы записать строку в файл необходимо так написать:
Code Sample:
writeLn (OutFile, outputString)
Замени и пол программы будет сделано. B еще... раздел констант всегда ДО раздела описания переменными (стандарт де-факто).
|
Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 28 фев. 2008 1:56 | IP
|
|
reina
Новичок
|
Спасибо за идею, попробую реализовать
|
Всего сообщений: 8 | Присоединился: февраль 2008 | Отправлено: 28 фев. 2008 20:18 | IP
|
|
reina
Новичок
|
Вроде сделала, как ты мне написал, но прога продолжает рассматривать и дублировать последнюю строку. program TE; uses crt; Const InpFileName='Lab.txt'; var InpFile, OutFile :TEXT; InputString:string; OutputString: string; OutputfileName: string; begin assign(InpFile,InpFileName); Reset(InpFile); writeln('vvedite nazvanie'); readln(OutputfileName); assign(OutFile,OutputFileName); rewrite(OutFile); CLRSCR; while(not EOF(InpFile)) do begin readln(InpFile,InputString); outputstring:=inputstring; writeln(outputstring); if(length(InputString)>50) then begin outputString:=Copy(InputString,51,length(InputString)-50); writeln(OutputString); end else writeln(outfile,outputString); end; writeln(outputstring) ; Writeln(OutFile,OutputString); close(InpFile); close(OutFile); end.
|
Всего сообщений: 8 | Присоединился: февраль 2008 | Отправлено: 28 фев. 2008 21:59 | IP
|
|
KMA
Долгожитель
|
Code Sample:
writeln(outputstring); Writeln(OutFile,OutputString); close(InpFile); close(OutFile); end.
Ты сама ее дублируешь. Убери красную строку и наслаждайся
|
Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 28 фев. 2008 23:20 | IP
|
|
reina
Новичок
|
Огромное спасибо!!!!!!
|
Всего сообщений: 8 | Присоединился: февраль 2008 | Отправлено: 28 фев. 2008 23:48 | IP
|
|
Guest
Новичок
|
КМА да я бы написал да вот только ничего в этой теме не понял
|
Всего сообщений: Нет | Присоединился: Never | Отправлено: 29 фев. 2008 12:23 | IP
|
|
KMA
Долгожитель
|
КМА да я бы написал да вот только ничего в этой теме не понял
Ты думаешь я телепат? Знаю о каком ты сообщении... вообще принято регистрироваться Если ты этого не хочешь, то хотя бы цитируй к чему твое сообщение относится. О какой задаче идет речь?
|
Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 29 фев. 2008 20:49 | IP
|
|
reina
Новичок
|
Новая проблема. Дано задание:в главную программу из TEXT файла ввести integer массив из 20 элементов.Вывести введенный массив в другой TEXT вайл. Найти в массиве сумму двух меньших элементов.Если сумма больше 10 то составить массив по убывающей. Результат работы и модифицированный массив вывести в на экран и в TEXT файл. Обработку массива произвести с помощью внутренней процедуры. Решение произвести с помощью 4 подпрограмм. Передавать данные через глобальные переменные и параметры.Данные в файл можно ввести только один раз.Внутренние подпрограммы не должны содержать операторов ввода/вывода. У меня есть код, но сумма не считается и выдает 0. в чем ошибка? вот код: program maaaaaaas; uses SysUtils; const el=20; InpFileName='Mydata.dat'; type MyMas=array[1..el] of integer; var ms:MyMas; InpFile,OutFile:TEXT; i, summa2:integer; ch:char; OutFileName:string; label TESTING,ENDING; procedure BUBLE(var a:MyMas);forward; procedure ProcMas(var a:MyMas; var s2:integer); var i,j,k:integer; procedure Pies(var a:MyMas; var s2:integer); Function Sum2(a:MyMas):integer; var i,sum:integer; begin Buble(a); writeln;writeln('masiv Buble'); for i:=1 to el do write(' "',i:2,'" ',a:4,''); sum:=0; for i:=1 to 2 do sum:=sum+a; sum2:=sum; end; begin s2:=sum2(a); writeln('summa dvuh menjwih ellementov: ',s2); end; begin if(s2>10) then begin for i:=1 to el-1 do for j:=i-1 to el do if a<a[j] then begin k:=a; a:=a[j]; a[j]:=k; end; end; end; procedure Buble(var a:MyMas); var i,j,temp:integer; begin for i:=1 to el-1 do for j:=i+1 to el do if a>a[j] then begin temp:=a; a:=a[j]; a[j]:=temp; end; end; begin Assign(InpFile,InpFileName); Reset(InpFile); writeln('vvedite nazvanie faila'); readln(OutFileName); Assign(OutFile,OutFileName); rewrite(OutFile); TESTING: for i:=1 to el do read(InpFile,ms); //if EOF(InpFile) then goto ENDING; writeln('vvedennie dannie'); for i:=1 to el do begin write(' "',i:2,'" ',ms:4,' '); write(OutFile,ms:3); end; ProcMas(ms,summa2); writeln(OutFile); writeln('summa dvuh menjwih elementov ', summa2); writeln(OutFile,'summa dvuh menjwih elementov ', summa2); writeln('Rezultirujuwij masiv'); for i:=1 to el do begin write(' "',i:2,'" ',ms:4,' '); write(OutFile,ms:3); end; writeln(' vvedite y ili Y 4tobi prodolzitj ili ko 4tob zaverwitj'); readln(ch); if (ch='Y') or (ch='y') then goto TESTING; ENDING:close(InpFile); close(OutFile); end.
|
Всего сообщений: 8 | Присоединился: февраль 2008 | Отправлено: 29 фев. 2008 23:06 | IP
|
|
KMA
Долгожитель
|
Я отказываюсь смотреть код, до тех пор, пока вы не будете соблюдать правила. Я уже устал бегать за всеми и исправлять это долбанное [ i ]. Тем более что предупреждение по поводу удаления таких программ я уже давал и не раз. Исправите, тогда другой разговор.
|
Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 1 марта 2008 2:18 | IP
|
|
Guest
Новичок
|
КМА помоги пожалуйста решить с использованием стека: 1. Запросить и ввести символьную строку 2. Проверить на своевременное закрытие любой скобки, даже если они разные
|
Всего сообщений: Нет | Присоединился: Never | Отправлено: 1 марта 2008 10:12 | IP
|
|
|