Форум программистов, компьютерный форум, киберфорум
Наши страницы
Matan!
Войти
Регистрация
Восстановить пароль
Оценить эту запись

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

Запись от Matan! размещена 31.03.2018 в 19:29
Обновил(-а) Matan! 26.09.2018 в 16:30

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

Задача: Создать приложение для нахождения среднего арифметического значения всех положительных элементов каждого из массивов А(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.
Размещено в Без категории
Просмотров 341 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru