Важная информация
Показано с 1 по 4 из 4

Тема: помогите написать программу. операторы цикла

  1. #1 помогите написать программу. операторы цикла 
    Новичок
    Регистрация
    06.11.2013
    Сообщений
    3
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Pascal. Операторы цикла (REPEAT, WHILE, FOR) + ввод данных из текстового файла и вывод их.
    по REPEAT чуть написала, а как дальше не знаю

    program 3a;
    Uses Crt;
    Var x,b,x1,x2,h,v:real;
    inp,out:text;
    begin;
    assign (inp, 'C:\3B-102\a.inр');
    reset (inp);
    reset (inp,x1,x2,h);
    close (inp);
    assign (out, 'C:\3B-102\a.out');
    writeln (out, x1=
    Изображения
    • Тип файла: jpg 1512.jpg (93.2 Кб, Просмотров: 3)
    Последний раз редактировалось Маринка Константинова; 03.12.2013 в 17:29.
    Ответить с цитированием  
     

  2. #2  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,852
    Сказал(а) спасибо
    1,816
    Поблагодарили 947 раз(а) в 809 сообщениях
    Записей в блоге
    1
    Может быть ввести из входного файла? У вас правильно написано? А то ведь можно фигню полную
    получить, читая из файла в который потом записывать, повторный запуск проги будет невозможен.

    По коду видно, что "плаваете" очень серьёзно, удаляйте своё художество и никому не показывайте.
    Ваша ошибка:
    Assign нужен чтобы привязать файл к дескриптору(описателю, в паскале он является переменной
    типа file или text), через который вы будете с файлом собственно работать, все операции с файлом
    идут только после Assign и через этот дескриптор.
    Далее идёт оператор Reset - который открывает файл. У вас их целых две штуки, второй не
    нужен и вместо него у вас должен быть оператор чтения из файла, т.е. Read. После чтения из
    файла его принято закрывать оператором Close.

    Напишу вам один вариант через цикл For, остальные изучите сами.

    Код pascal:
    Uses Crt;
     
     {
       Функция возвращает True, если файл существует, иначе
       возвращает False. Закрывает файл, если он существует.
     }
     
    Function FileExists(FileName : String) : Boolean;
    Var
      F : File;
    Begin
      {$I-}  { Блокируем ошибки ввода-вывода }
      Assign(F, FileName);
      Reset(F);
      Close(F);
      {$I+}  { Возобновляем ошибки ввода-вывода }
      FileExists := (IOResult = 0) and (FileName <> '');
    End;  { FileExists }
     
    Var
      MyF      : Text;     {  Описатель  }
      FnameIn  : String;   {  Имя входного файла   }
      FnameOut : String;   {  Имя выходного файла  }
      x,          {  Итерации  }
      x1, x2,     {  Границы   }
      h,          {  Шаг цикла }
      b,          {  b  }
      v : Double; {  v  }
      Steps, i : LongInt;
    Begin
      ClrScr;
      {  Введём имя файла  }
      {Write('Vvedite imya vhodnogo faila: ');
      ReadLn(FnameIn);
      Write('Vvedite imya vihodnogo faila: ');
      ReadLn(FnameOut);}
      FnameIn  := 'Test.txt';
      FnameOut := 'TOut.txt';
      {  Если файл существует - откроем  }
      If FileExists(FnameIn) Then Begin
        Assign(MyF, FnameIn);    {  Привязываем дескриптор к файлу  }
        Reset(MyF);              {  Откроем файл  }
           {  Прочитаем из файла  }
           Read(MyF, x1, x2, h, b);
        Close(MyF);              {  Закроем файл  }
        Assign(MyF, FnameOut);   {  Привязываем дескриптор к вых. файлу  }
        ReWrite(MyF);            {  Создаём выходящий файл  }
           x := x1 - h;          {  Переменная табулирования  }
           Steps := Trunc((x2 - x1) / h) + 1;  {  Кол-во шагов  }
        WriteLn (MyF, '   x   ', Chr(179), '    v');
           {  Цикл  }
           For i := 1 To Steps Do Begin
     
              x := x + h;
     
              If x < 3 Then
                v := Exp(2 * x)
              Else
                 If b > 5 Then
                   v := 1 / Abs(x * x * x * x)
                 Else
                   v := Cos(x);
              WriteLn (MyF, x:4:4, ' ' + Chr(179) + ' ', v:4:4)
           End;
        Close(MyF);             {  Закроем файл  }
        WriteLn('Fail ' + FnameOut + ' sozdan, proverte dannye...');
      End
      Else Begin
        Write('Fail ' + FnameIn + ' otsutstvuet...')
      End;
      Repeat Until Keypressed;
    End.
    Последний раз редактировалось >Quiet Snow<; 03.12.2013 в 19:49.
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

  3. Пользователь сказал cпасибо:

    Абадябер (03.12.2013)

  4. #3  
    Новичок
    Регистрация
    06.11.2013
    Сообщений
    3
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    мне вообще нужно сдать эту гребанную лабу, получить свою тройку и забыть весь этот паскаль как страшный сон.
    Ответить с цитированием  
     

  5. #4  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,852
    Сказал(а) спасибо
    1,816
    Поблагодарили 947 раз(а) в 809 сообщениях
    Записей в блоге
    1
    мне вообще нужно сдать эту гребанную лабу
    Да ради бога, я помог чем смог, а вы уж разбирайтесь...
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. помогите написать программу
    от Маринка Константинова в разделе Turbo Pascal
    Ответов: 3
    Последнее сообщение: 07.11.2013, 02:56
  2. помогите написать программу
    от Стамус в разделе QBasic
    Ответов: 5
    Последнее сообщение: 18.10.2012, 20:35
  3. Ответов: 19
    Последнее сообщение: 03.06.2011, 04:49
  4. Ответов: 2
    Последнее сообщение: 26.05.2011, 17:44
  5. Ответов: 3
    Последнее сообщение: 29.11.2010, 02:08
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •