Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2014, 08:38   #1
sisaw
Пользователь
 
Регистрация: 15.12.2013
Сообщений: 24
По умолчанию Создайте файл f, компоненты которого являются действительными числами. Составите программу вычисления разности между первым и посл

Создайте файл f, компоненты которого являются действительными числами. Составите программу вычисления разности между первым и последним компонентом файла f. Выясните, совпадает ли найденная разность с полусуммой наибольшего и наменьшего компонентов этого файла.



Помогите написать на паскале.
sisaw вне форума Ответить с цитированием
Старый 12.05.2014, 08:47   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Вы ещё не усвоили, что "Помочь" - это не "сделать за Вас"?!
Выкладывайте, что Вам удалось уже написать, что не получается (что конкретно вызывает трудности).
Задачка очень и очень простая.

для затравки.
файл действительных чисел описывается так:
Код:
var f : file of real; {или file of double  при желании}
количество записей (чисел) в таком файле (он, кстати, называется типизированным - т.е. файл, состоящий из элементов определённого типа) можно легко получить через функцию FileSize(f)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.05.2014, 09:04   #3
sisaw
Пользователь
 
Регистрация: 15.12.2013
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Вы ещё не усвоили, что "Помочь" - это не "сделать за Вас"?!
Выкладывайте, что Вам удалось уже написать, что не получается (что конкретно вызывает трудности).
Задачка очень и очень простая.

для затравки.
файл действительных чисел описывается так:
Код:
var f : file of real; {или file of double  при желании}
количество записей (чисел) в таком файле (он, кстати, называется типизированным - т.е. файл, состоящий из элементов определённого типа) можно легко получить через функцию FileSize(f)
Трудность вызывает что на эту тему лекций не было.
sisaw вне форума Ответить с цитированием
Старый 12.05.2014, 09:16   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от sisaw Посмотреть сообщение
Трудность вызывает что на эту тему лекций не было.
ну, это объяснение не принимается.
Даже если лекций не было, неужели трудно прочитать о работе с типизированными файлами в учебнике Паскаля?!
И в интернете полно учебного материала.
например,
http://pas1.ru/typed-file
http://rsc-team.ru/index.pl?group=lection&ind=15&rzd=2

вам нужно прочитать, что такое типизированный файл, как его объявлять (я уже привёл пример выше), как открывать/закрывать, как читать/писать.

потом написать программу 1.

Описать файл вещественных чисел.
Назначить файловой переменной имя файла на диске.
Открыть файл на запись.
Записать в него нужное число чисел.
Закрыть файл.

Потом написать программу 2.
Описать файл вещественных чисел.
Назначить файловой переменной имя файла на диске.
Открыть файл на чтение.
прочитать первое число
в цикле найти максимальное и минимальное значения (алгоритм такой же, как при поиске эктремумов в массиве)
прочитать последнее число.
Найти разность между первым и последним числом файла
Сравнить, совпадает ли разность с полусуммой наибольшего и наменьшего
Вывести результат сравнения.
Закрыть файл.

всё.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.05.2014, 08:49   #5
sisaw
Пользователь
 
Регистрация: 15.12.2013
Сообщений: 24
Печаль Не идет программа

Создайте файл f, компоненты которого являются действительными числами. Составите программу вычисления разности между первым и последним компонентом файла f. Выясните, совпадает ли найденная разность с полусуммой наибольшего и наименьшего компонентов этого файла.
Язык паскаль( попытка чтения за концом файла)

Код:
Var
 f:file of Real;
 i,N:Byte;
 A,Max,Min,First,Last:Real;
 
Begin
 Randomize;
 N:=50+Random(100);
 Assign(f,'D:\xxx');
Rewrite(f);
 For i:=1 to N do
  begin
   A:=(Random-0.3)*100;
   Write(f,A);
  end;
 Close(f);
 Reset(f);
 Read(f,First);
 Min:=First;
 Max:=First;
 Repeat
  if not EoF(f) then
   begin
    Read(f,Last);
    If Last>Max then Max:=Last;
    If Last<Min then Min:=Last;
   end;
 Until EoF(f);
 Close(f);
 Writeln('Max-Min = ',Max-Min:0:3);
 Writeln('(First+Last)/2 = ',(First+Last)/2:0:3);
 If (Max-Min)=((First+Last)/2) then
  Writeln('Coincides!')
 else
  Writeln('Not coincides!');
 Readln
End.



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 13.05.2014 в 09:14.
sisaw вне форума Ответить с цитированием
Старый 13.05.2014, 09:17   #6
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Для чтения из файла достаточно использовать цикл While not EOF(f)
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 13.05.2014, 09:21   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

программа годная (Вы только перепутали, где разность, а где полусумма, но для кода это не очень принципиально)

Рискну предположить, что проблема с записью в файл на диске D:\
посмотрите, есть ли файл с именем D:\xxx
какого он размера?
Попробуйте предварительно удалить файл D:\xxx и затем пройти программу в отладчике в пошаговом режиме (по F8 или использовать точки останова в отладчике). На какой строке кода программа вырубается?
И ещё, какой у Вас Паскаль (компилятор/IDE)?


Цитата:
Сообщение от GetMax
Для чтения из файла достаточно использовать цикл While not EOF(f)
Это безусловно так. Но явной ошибки и в коде TC я не увидел (я код у себя в TurboPascal прогнал, всё отработало как часы!)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.05.2014, 09:29   #8
sisaw
Пользователь
 
Регистрация: 15.12.2013
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
программа годная (Вы только перепутали, где разность, а где полусумма, но для кода это не очень принципиально)

Рискну предположить, что проблема с записью в файл на диске D:\
посмотрите, есть ли файл с именем D:\xxx
какого он размера?
Попробуйте предварительно удалить файл D:\xxx и затем пройти программу в отладчике в пошаговом режиме (по F8 или использовать точки останова в отладчике). На какой строке кода программа вырубается?
И ещё, какой у Вас Паскаль (компилятор/IDE)?



Это безусловно так. Но явной ошибки и в коде TC я не увидел (я код у себя в TurboPascal прогнал, всё отработало как часы!)
Нее с путем файла все нормально просто щас он мне не считает правильно, да и сказали rondom теперь даже не знаю куда че вставлять
sisaw вне форума Ответить с цитированием
Старый 13.05.2014, 09:45   #9
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Во-первых, смените тип данных с Byte на Integer в описании переменных. Иначе рандом может вам сгененерить такое число, что оно просто не влезет в этот тип.

Во-вторых что конкретно считается не правильно?

Цитата:
да и сказали rondom теперь даже не знаю куда че вставлять
Что????
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 13.05.2014, 09:56   #10
sisaw
Пользователь
 
Регистрация: 15.12.2013
Сообщений: 24
По умолчанию

Цитата:
Сообщение от GetMax Посмотреть сообщение
Во-первых, смените тип данных с Byte на Integer в описании переменных. Иначе рандом может вам сгененерить такое число, что оно просто не влезет в этот тип.

Во-вторых что конкретно считается не правильно?


Что????
Rondom надо заменить а считает все нули
sisaw вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан файл, компоненты которого являются целыми числами. Преобразовать его, исключив повторные вхождения одного и того же Vikulyaa Помощь студентам 2 05.10.2011 19:15
Дан файл f, компонент которого являются целыми числами... Наталья111 Общие вопросы Delphi 7 30.05.2011 15:34
вывести вектор, элементы которого являются наибольшими числами каждой строки матрицы Artur1992 Помощь студентам 1 23.11.2010 11:35
Заполнить файл последовательного доступа N действительными числами Figushkin Помощь студентам 0 05.06.2010 01:23
Дан файл, элементами которого являются числа Артём1992 Помощь студентам 3 18.03.2010 12:43