Форум программистов, компьютерный форум, киберфорум
Matan!
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  

Интересные моменты 2

Запись от Matan! размещена 31.03.2018 в 19:29
Показов 2130 Комментарии 0

Продолжение. Начало в Интересные моменты

Задача: Создать приложение для нахождения среднего арифметического значения всех положительных элементов каждого из массивов А(8), В(9). Вычисление повторяющейся части организовать с помощью подпрограммы-функции. Для вывода результатов использовать многострочный редактор.

P.S. Да, задача самая что ни есть элементарная и избитая. Но вот ответ krapotkinа мне настолько понравился, что я решил его сохранить здесь.
Ответ :
(с)krapotkin

создать форму
на нее положить TButton и TMemo
объявить тип
Delphi
1
2
type
  TIntArray=array of integer;
объявить переменные - массивы
Delphi
1
2
var 
  a,b:array of integer;
создать процедуру заполнения массива произвольными значениями, например
Delphi
1
2
3
4
5
6
procedure RandomFillArray(var Arr:TIntArray);
  var i:integer;
begin
  for i:=0 to high(Arr) do
    arr[i] := random(200) - 100;
end;
создать функцию вычисления среднего среди положительных элементов массива, например
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function GetAvg(var Arr:TIntArray):double;
  var i,n:integer;
begin
  result := 0;
  n:=0;  
  for i:=0 to High(Arr) do
  begin
    if Arr[i]>0 then
    begin
      n:=n+1;
      result := result + arr[i];
    end;
  end;
  if n<>0 then
    result := result / n;
end;
создать обработчик нажатия кнопки
там
1. задать размеры массивов A и B
Delphi
1
2
SetLength(A,8);
SetLength(B,9);
2. заполнить оба массива произвольными значениями c помощью процедуры RandomFillArray
Delphi
1
2
RandomFillArray(A);
RandomFillArray(B);
3. вывести в memo результаты работы функции GetAvg()
Delphi
1
2
memo1.lines.add(formatFloat('0.000', getAvg(A));
memo1.lines.add(formatFloat('0.000', getAvg(B));


Задача: Найти натуральные числа, такие чтобы сумма их цифр, а также сумма цифр следующего за ним числа делилась на 7.
Ответ :
(с)Puporev

Сумма цифр числа:
Delphi
1
2
3
4
5
6
7
m:=n;                   //запомним число
s:=0;                    //сумма пока 0
while m>0 do        //пока число больше 0
begin
  s:=s+m mod 10; //отделяем и суммируем последнюю цифру
  m:=m div 10;     //сокращаем число в 10 раз
end;
Delphi
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
function sum(n:integer):integer;
var m,s:integer;
begin
  m:=n;//запомним число
  s:=0;//сумма пока 0
  while m>0 do//пока число больше 0
  begin
    s:=s+m mod 10;//отделяем и суммируем последнюю цифру
    m:=m div 10;//сокращаем число в 10 раз
  end;
  sum:=s;
end;
var n,k:integer;
begin
  k:=0;
  for n:=1 to 10000 do
  begin
    if(sum(n)+sum(n+1)) mod 7=0 then
    begin
      k:=1;
      write(n,' ');
    end;
  end;
  if k=0 then write('Чисел, соответствующих условию нет')
end.
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии
 
Новые блоги и статьи
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru