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

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

22.03.2017, 11:57. Показов 2228. Ответов 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
Модератор
10378 / 5665 / 3399
Регистрация: 17.08.2012
Сообщений: 17,305
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,434
19.04.2017, 18:33
Леха666666574, если вам нужно без random, то замените эту строку на
Pascal
1
readln(t);
0
Модератор
10378 / 5665 / 3399
Регистрация: 17.08.2012
Сообщений: 17,305
20.04.2017, 10:25
ZX Spectrum-128, ???
Даже мне неясно, что заменить.
0
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,434
20.04.2017, 14:43
Эту:
Pascal
17
      t := 99 - 199 * random;
0
Модератор
10378 / 5665 / 3399
Регистрация: 17.08.2012
Сообщений: 17,305
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
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru