• Задание 1

    Нахождение суммы (произведения, количества) элементов (обладающих заданным свойством).
    Заполнить одномерный массив А из 10 элементов случайными числами из отрезка [-20,50].


    Любую задачу на массив можно разбить на подзадачи. Так, в данной задаче две подзадачи: 1. формирование массива; 2. Вывод массива на экран. Поэтому программа решения данной задачи будет содержать процедуры: Vvod и Vivod.
    Заметим, что заполнение и вывод на экран массива можно осуществить только поэлементно, то есть можно сначала присвоить значение первому элементу, затем второму и так далее.
    Поскольку известно количество повторений команды ввода или вывода элементов массива, то при составлении программ на массивы используется цикл с параметром:
    Program massiv1; Uses Crt;
    Type Mas=Array [1..10] of Real;
    Var a:Mas;
    Procedure Vvod(Var x:Mas);
    Var i:Integer;
    Begin For i:=1 To 10 Do x[i]:=30*Random+20;{(B-A)*random+A}
    End;
    Procedure Vivod(Var x:Mas);
    Var i:Integer;
    Begin For i:=1 To 10 do Write(x[i]:8:2)
    End;
    Begin
    Vvod(a); Vivod(a); End.
    Дополним программу, решив задачу: найти среднее арифметическое положительных элементов массива процедурой:
    Procedure sr_arif(Var x:Mas;Var c:Real);
    Var i,k:Integer;
    Begin c:=0;k:=0;For i:=1 To 10 Do
    If x[i]>0 Then Begin c:=c+x[i];k:=k+1 End; c:=c/k End;
    В программу добавятся строки:
    sr_arif(a,s); Writeln('Среднее ариф. положительных элементов = ',s:8:2); Модифицируйте программу для решения следующих задач:
    1)Найти сумму элементов, кратных заданному числу;
    2)Найти количество отрицательных элементов.
    3)Найти произведение элементов, меньших десяти.
    помогите пожалуйста:))))))))) это 10-11 класс.

Ответы 1

  • 1)Program massiv1;Uses Crt;Type Mas=Array [1..10] of integer; Var a:Mas; d,s:integer;Procedure Vvod(Var x:Mas); Var i:Integer;Begin For i:=1 To 10 Do x[i]:=Random(50);End;Procedure Vivod(Var x:Mas);Var i:Integer;BeginFor i:=1 To 10 do Write(x[i]:4);writeln;End;Procedure p1(Var x:Mas; d:integer; Var s:integer); Var i:Integer;Begins:=0;For i:=1 To 10 Do If x[i] mod d=0 Then s:=s+x[i];End; BeginVvod(a);Vivod(a);write('d = ');readln(d);p1(a,d,s);Writeln('Сумма элементов, кратных ',d,' = ',s);End.Пример: 4 18 37 15 45 4 9 48 47 27d = 3Сумма элементов, кратных 3 = 1622)Program massiv2;Uses Crt;Type Mas=Array [1..10] of Real; Var a:Mas; k:integer;Procedure Vvod(Var x:Mas); Var i:Integer;Begin For i:=1 To 10 Do x[i]:=30*Random-20;{(B-A)*random+A}End;Procedure Vivod(Var x:Mas);Var i:Integer;BeginFor i:=1 To 10 do Write(x[i]:8:2);writeln;End;Procedure p2(Var x:Mas;Var k:integer); Var i:Integer;Begink:=0;For i:=1 To 10 Do If x[i]<0 Then k:=k+1;End; BeginVvod(a);Vivod(a);p2(a,k);Writeln('Количество отрицательных элементов = ',k);End.Пример:  -13.77  -11.34   -2.35    7.69  -18.85  -12.48   -6.11  -17.10    7.12   -9.60Количество отрицательных элементов = 83)Program massiv3;Uses Crt;Type Mas=Array [1..10] of Real; Var a:Mas; p:real;Procedure Vvod(Var x:Mas); Var i:Integer;Begin For i:=1 To 10 Do x[i]:=30*Random;{(B-A)*random+A}End;Procedure Vivod(Var x:Mas);Var i:Integer;BeginFor i:=1 To 10 do Write(x[i]:8:2);writeln;End;Procedure p3(Var x:Mas;Var p:real); Var i:Integer;Beginp:=1;For i:=1 To 10 Do If x[i]<10 Then p:=p*x[i];End; BeginVvod(a);Vivod(a);p3(a,p);Writeln('Произведение элементов, меньших десяти = ',p:8:3);End.Пример:   24.36   22.50    3.31    5.50   21.68    8.22   19.89   24.86    2.69   23.78Произведение элементов, меньших десяти =  402.027
    • Автор:

      guidozft8
    • 4 года назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years