Форум
» Назад на решение задач по физике и термеху
Регистрация | Профиль | Войти | Забытый пароль | Присутствующие | Справка | Поиск

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Информационные технологии
        Решение задач на Pascal. Форум 2
Отметить все сообщения как прочитанные   [ Помощь ]
» Добро пожаловать на форум "Информационные технологии" «

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 ]
Модераторы: paradise, KMA
  

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

Эта тема закрыта, новые ответы не принимаются

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 ]

Форум работает на скрипте © Ikonboard.com