Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 28.10.2016
Сообщений: 23

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

22.03.2017, 11:57. Показов 2251. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Записать на диск файл вещественных чисел. Определить среднее арифметическое всех положительных компонент файла.Если первая компонента меньше среднего арифметического значения , заменить Ее значением.файл распечатать.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.03.2017, 11:57
Ответы с готовыми решениями:

Вычислить и напечатать среднее арифметическое компонент файла
Дан файл из целых чисел.Вычислить и напечатать среднее арифметическое компонент файла.Переставить компоненты файла так, чтобы сначала шли...

Определить среднее арифметическое положительных и среднее арифметическое отрицательных элементов вектора
В целочисленном векторе vectorn определить среднее арифметическое положительных и отдельно среднее арифметическое отрицательных элементов...

Определить среднее арифметическое всех положительных чисел, кратных 9, среди Р любых чисел
Определить среднее арифметическое всех положительных чисел, кратных 9, среди Р любых чисел.

6
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
22.03.2017, 12:14
Как я понял, мы считываем числа из файла, а потом забиваем этот же файл новыми значениями. Так?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var
  f:text;
  a:array [1..100] of real;
  i,n,kpol:byte;
  sr:real;
begin
  assign(f,'in.dat');
  reset(f); n:=0; kpol:=0; sr:=0;
  while not eof(f) do begin
    n:=n+1; read(f,a[n]);
    if a[n]>0 then begin
      kpol:=kpol+1; sr:=sr+a[n];
    end;
  end;
  close(f);
  sr:=sr/kpol;
  if a[1]<sr then a[1]:=sr;
  for i:=1 to n do write(a[i]:0:1,' ');
  rewrite(f);
    for i:=1 to n do write(f,a[i]:0:1,' ');
  close(f);
end.
1
Модератор
10448 / 5739 / 3407
Регистрация: 17.08.2012
Сообщений: 17,459
22.03.2017, 23:44
Лучший ответ Сообщение было отмечено Леха666666574 как решение

Решение

Hitoku... Нужно записать на диск файл вещественных чисел, то есть, типизированный файл, не текстовый. А типизированный файл, по сути, массив, и применение отдельно описанного массива для работы с таким файлом в большинстве случаев неоправданно.
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
var f: file of real;
    sr, t: real;
    i, n, k: longword;
begin
  randomize;
  repeat
    write('Введите количество чисел: ');
    readln(n)
  until n > 0;
  dec(n);
  //Записать на диск файл вещественных чисел
  assign(f, 'f.dat');
  rewrite(f);
  writeln('Исходный файл:'); //убрать, если не нужна печать исходного файла
  for i := 0 to n do
    begin
      t := 99 - 199 * random;
      write(f, t);
      write(t:8:3) //убрать, если не нужна печать исходного файла
    end;
  writeln;
  //Определить среднее арифметическое всех положительных компонент файла
  reset(f);
  sr := 0;
  k := 0;
  for i := 0 to n do
    begin
      read(f, t);
      if t > 0
        then begin
          inc(k);
          sr := sr + t
        end
    end;
  if k = 0
    then writeln('Файл не содержит положительных компонентов')
    else begin
      sr := sr / k;
      writeln('Среднее арифметическое положительных компонентов файла: ', sr:0:3);
      //Если первая компонента меньше среднего арифметического значения , заменить Ее значением
      reset(f);
      read(f, t);
      if t >= sr
        then writeln('Среднее арифметическое положительных компонентов не больше первой компоненты')
        else begin
          reset(f);
          write(f, sr);
          //файл распечатать
          writeln;
          writeln('Результат:');
          reset(f);
          for i := 0 to n do
            begin
              read(f, t);
              write(t:8:3)
            end;
          writeln
        end
    end;
  close(f);
  readln
end.
Эту программу можно оптимизировать путём объединения нескольких действий в одно.
1
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,433
19.04.2017, 18:33
Леха666666574, если вам нужно без random, то замените эту строку на
Pascal
1
readln(t);
0
Модератор
10448 / 5739 / 3407
Регистрация: 17.08.2012
Сообщений: 17,459
20.04.2017, 10:25
ZX Spectrum-128, ???
Даже мне неясно, что заменить.
0
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,433
20.04.2017, 14:43
Эту:
Pascal
17
      t := 99 - 199 * random;
0
Модератор
10448 / 5739 / 3407
Регистрация: 17.08.2012
Сообщений: 17,459
20.04.2017, 15:15
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Тогда лучше строки 17-19 так заменить:
Pascal
17
18
19
      write(i+1, ' число = ');
      readln(t);
      write(f, t);
и ещё убрать строку 5 за ненадобностью.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.04.2017, 15:15
Помогаю со студенческими работами здесь

Найти среднее арифметическое компонент файла
program Z14; var b,S,k,i:integer; f:file of integer; SrA:real; begin assign(f,'f.dat'); rewrite(f); ...

Найти среднее арифметическое всех положительных элементов матрицы
Найти среднее арифметическое всех положительных элементов матрицы Аnxn

Найти среднее арифметическое всех положительных элементов матрицы
Задана квадратная матрица А размером N*M(N&lt;=10), состоящая из целочисленных элементов найти среднее арифметическое всех положительных...

Определить среднее арифметическое положительных чисел. Все отрицательные элементы увеличить на это среднее
Создать массив А . Определить среднее арифметическое положительных чисел. Все отрицательные элементы увеличить на это среднее. ...

Вычислить среднее арифметическое всех положительных чисел
Дано целое число N и набор целых чисел: A 1 , A 2 , …, A N . Вычислить среднее арифметическое всех положительных чисел.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru