Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 20.11.2015
Сообщений: 11
1

Определить количество всех отрицательных компонент типизированного файла вещественных чисел

28.12.2015, 22:54. Показов 2368. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дан типизированный файл вещественных чисел. Определить количество всех отрицательных

Подпрограмма должна быть написана в стиле защитного программирования. Необходимо предусмотреть обработку всех возможных ошибок. Описать все необходимые типы данных. Написать спецификацию к подпрограмме.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.12.2015, 22:54
Ответы с готовыми решениями:

Определить количество отрицательных и количество положительных вещественных чисел
Даны натуральное число n и целые числа a1, a2,..., an. Определить количество отрицательных и...

Определить количество отрицательных и положительных компонент файла
Помогите с программой: Организовать типизированный файл целых чисел F1, состоящий из n...

Создать два файла вещественных чисел. Подсчитать количество компонент в них. Получить результирующий файл
Создать два файла вещественных чисел. Подсчитать количество компонент в них. Получить...

Создание типизированного файла вещественных чисел.
Нужно: Создать типизированный файл вещественных чисел, задать с клавиатуры номер компоненты N, с...

5
438 / 367 / 132
Регистрация: 09.09.2011
Сообщений: 1,334
29.12.2015, 10:40 2
что такое "спецификация к подпрограмме"

и если дан типизированный файл то где он? или где хотя бы его описание, какой именно вещественный тип используется? в фри паскале 6 встроенных вещественных типов:

Type Range Significant digits Size

Real platform dependant ??? 4 or 8
Single 1.5E-45 .. 3.4E38 7-8 4
Double 5.0E-324 .. 1.7E308 15-16 8
Extended 1.9E-4932 .. 1.1E4932 19-20 10
Comp -2E64+1 .. 2E63-1 19-20 8
Currency -922337203685477.5808 .. 922337203685477.5807 19-20 8
0
0 / 0 / 0
Регистрация: 17.01.2016
Сообщений: 1
17.01.2016, 16:46 3
Спецификация - комментарий, в котором объясняется что делает данная подпрограмма, указываются все входные и выходные параметры, еще указывается что произойдет в случае, если подпрограмма будет выполнена успешно\не успешно.
Вещественный тип в таких заданиях обычно берут single.
Что действительно важно, так это может ли кто-нибудь помочь с самим кодом?
0
438 / 367 / 132
Регистрация: 09.09.2011
Сообщений: 1,334
22.01.2016, 10:36 4
а что здесь с кодом то сложного? если не брать аспект "защитного стиля программирования", то задача примитивная.
защитный стиль реализовать можно используя механизм перехвата и обработки исключений.
0
Эксперт Pascal/Delphi
6810 / 4567 / 4819
Регистрация: 05.06.2014
Сообщений: 22,438
22.01.2016, 10:51 5
Цитата Сообщение от DoktorXX Посмотреть сообщение
Подпрограмма должна быть написана в стиле защитного программирования. Необходимо предусмотреть обработку всех возможных ошибок. Описать все необходимые типы данных. Написать спецификацию к подпрограмме.
Эту часть работы сделайте самостоятельно.

Pascal
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
program negative;
var
  f:file of real;
  x:real;
  i,n,mx:integer;
begin
  assign(f,'file.dat');
  rewrite(f);
  write('Введите количество чисел: ');
  readln(n);
  writeln('Введите в файл действительные числа: ');
  for i:=1 to n do
    begin
      write('Число: ');
      readln(x);
      write(f,x);
    end;
  writeln('Содержание исходного файла:');
  reset(f);
  mx:=0;
  while not eof(f) do
    begin
      read(f,x);
      if x<0 then
        inc(mx);
      write(x:0:2,' ');
    end;
  writeln;
  close(f);
  write('Количество отрицательных: ',mx);
  readln;
end.
0
438 / 367 / 132
Регистрация: 09.09.2011
Сообщений: 1,334
22.01.2016, 13:39 6
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

ZX Spectrum-128, у Вас не совсем что требуется в задании. Файл уже дан и процедура/функция не должна его формировать....

вот мой вариант:
Кликните здесь для просмотра всего текста
Pascal
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
program file_of_single;
{Задача с [url]https://www.cyberforum.ru/free-pascal/thread1628086.html[/url]
 
 Дан типизированный файл вещественных (Single) чисел.
 Определить количество всех отрицательных.
 
 Подпрограмма должна быть написана в стиле защитного программирования.
 Необходимо предусмотреть обработку всех возможных ошибок. Описать все
 необходимые типы данных. Написать спецификацию к подпрограмме.}
{$mode objfpc}{$H+}
 
uses
    {$IFDEF UNIX}{$IFDEF UseCThreads}
    cthreads,
    {$ENDIF}{$ENDIF}
    sysutils, {для активации механизма исключений}
    Classes;
{Спецификация:
Функция принимает аргумент aFileName - имя файла вещественных числе
и возвращает целое - количество отрицательных чисел,
либо в случае неудачи значение -1}
function ProcessFile(const aFileName: string): integer;
var
  fHandle: file of Single;
  value: Single;
begin
  Result:= 0;
  try
      AssignFile(fHandle, aFileName);
 
    try
      Reset(fHandle);
 
      if FileSize(fHandle) > MaxInt then
         Raise Exception.Create('The file is too big. Integer overflow!');
 
      repeat
        Read(fHandle, value);
        if value < 0 then inc(Result);
      until EOF(fHandle) ;
 
    finally
      CloseFile(fHandle);
    end;
 
  except
    Result:= -1;
    exit;
  end;
 
end;
 
var
  fHTestFile: file of Single;
begin
  //testing
  AssignFile(fHTestFile, '_test.dat');
  Rewrite(fHTestFile);
  Write(fHTestFile, Single(15.0));
  Write(fHTestFile, Single(-15.0));
  Write(fHTestFile, Single(0.0));
  Write(fHTestFile, Single(99.0));
  CloseFile(fHTestFile);
  //корректный файл с 1-м отрицательным
  writeln('output should be 1, but we have: ', ProcessFile('_test.dat'));
  //корректный файл без отрицательных
  AssignFile(fHTestFile, '_test.dat');
  Rewrite(fHTestFile);
  Write(fHTestFile, Single(15.0));
  Write(fHTestFile, Single(15.0));
  Write(fHTestFile, Single(0.0));
  Write(fHTestFile, Single(99.0));
  CloseFile(fHTestFile);
  writeln('output should be 0, but we have: ', ProcessFile('_test.dat'));
  //несуществующий файл
  writeln('output should be -1, but we have: ', ProcessFile('___test.dat'));
  //файл неправильного формата
  writeln('output should be -1, but we have: ', ProcessFile('file_of_single.exe'));
 
  readln;
end.
Миниатюры
Определить количество всех отрицательных компонент типизированного файла вещественных чисел  
1
22.01.2016, 13:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.01.2016, 13:39
Помогаю со студенческими работами здесь

Упорядочить содержимое типизированного файла вещественных чисел по возрастанию
Люди пожалуйста помогите!!!! У меня скоро ГОСы - 8го числа и мне надо написать программу на...

Найти сумму компонент, модуль суммы и квадрат произведения компонент файла вещественных чисел
Дан файл f, компоненты которого являются действительными числами. Найти при помощи подпрограммы...

Определить количество отрицательных, положительных чисел и среднее арифметическое всех чисел массива
Задан одномерный массив размером N. Определить количество отрицательных чисел, количество...

Определить наибольший отрицательный и наименьший положительный компонент типизированного файла
Создать типизированный файл, куда записать n целых чисел. Из исходного файла сформировать массивы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru