М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
beeilne434gmailcom
beeilne434gmailcom
26.03.2020 14:15 •  Информатика

Классификация алгоритмов(структура,без определений)сделать постановку ,нарисовать блок-схему и таблицу расччетов: цикл со счетчиком: вычислить сумму четных чисел от 12 до 30

👇
Ответ:
nikj12320
nikj12320
26.03.2020
1. Алгоритмы бывают линейные, разветвляющиеся (содержащие условия), циклические (содержащие циклы) и комбинированные (объединяющие в себе несколько из перечисленных выше алгоритмов). Несколько особняком стоят рекурсивные алгоритмы. Это алгоритмы, которые повторно обращаются сами к себе. Рекурсивный алгоритм может быть сведен к комбинированному, но в некоторых случаях процесс сведения оказывается трудоемким, а сам алгоритм теряет свою наглядность.

2. Цикл со счетчиком относится к циклическим алгоритмам. Управляет циклом специальная переменная, которая называется счетчиком или параметром цикла. Особенность такого цикла в том, что он всегда выполняется известное число раз, которое определяется заголовком цикла до первого входа в тело цикла. Цикл со счетчиком обеспечивает изменение параметра цикла от некоторого начального значения a до значения b c шагом h. Количество повторений такого цикла вычисляется по формуле
n=\lfloor \frac{b-a}{h}\rfloor+1, где первое слагаемое округляется до ближайшего меньшего целого. Если n≤0, цикл не выполняется ни разу.

3. В языке Паскаль цикл со счетчиком накладывает весьма жесткие условия на параметр цикла (счетчик):
- параметр цикла должен быть целочисленной переменной;
- шаг изменения параметра цикла может быть равен или 1, или -1;
- значения границ интервала (a,b) и шага h фиксируются перед первым входом в тело цикла и даже будучи измененными в теле цикла уже не влияют на параметр цикла; 
- значение параметра цикла нельзя изменять в теле цикла;
- значение параметра цикла после выхода из цикла считается неопределенным, т.е. не должно использоваться в случае тиражирования исходного кода программы, поскольку в разных реализациях Паскаля это значение может оказать различным- любым, равным последнему допустимому в теле цикла значению, либо отличающимся от этого значение на величину шага в сторону изменения параметра цикла.

4. Реализация поставленной задачи.
Число считается четным, если оно делится на 2 без остатка. Нам нужно найти сумму четных чисел из ряда 12, 14, 16, ... 28, 30. Цикл со счетчиком, как было замечено выше, не может обеспечить изменение параметра цикла с шагом два. Поэтому есть три пути.
Первый путь - организовать цикл со счетчиком, который переберет все числа от 12 до 30. В теле цикла проверять условие четности и удовлетворяющие этому условию числа передавать не суммирование.
Второй путь - найти формулу для общего члена последовательности чисел и реализовать её при изменении счетчика с шагом 1. Формула для получения четных числ натурального ряда известна: m=2*k, где k=1,2,3,...
Если мы будем менять k от 6 до 15, то получим набор целых четных чисел m от 12 до 30.
Третий путь - вспомнить формулу суммы ряда арифметической прогрессии.
S= \frac{a_1+a_n}{2}\times n; \\ a_1=15, \ a_n=30, \ n= \frac{30-12}{2}+1=10 \\ S= \frac{12+30}{2}\times 10=210.
На этом, третьем пути, мы легко нашли ответ и программа получается не нужна.
Тем не менее, в задании сказано реализовать цикл со счетчиком и мы выбираем второй путь, как более эффективный.

5. Программа на языке Pascal

var
  i, s: integer;

begin
  s := 0;
  for i := 6 to 15 do s := s + 2 * i;
  Writeln('Сумма четных чисел от 12 до 30 равна ', s)
end.

Результат выполнения:
Сумма четных чисел от 12 до 30 равна 210

6. Блок-схема приведена во вложении.
4,6(37 оценок)
Открыть все ответы
Ответ:
twelve2
twelve2
26.03.2020

#include <iostream>

#include <iomanip>

using namespace std;

int main()

{

 int a[5][5] =

 {

   {4,-5,8,-3,1},

   {-3,8,-1,1,-8},

   {9,6,6,-3,-7},

   {-7,-3,3,6,-7},

   {7,-3,-6,5,0},

 };

 int b[5][5];

 int i, j, cp, cm, sp, sm;

 setlocale(LC_ALL, "Russian");

 cout << "Массив A";

 for (i = 0; i < 5; i++) {

   cout << endl;

   for (j = 0; j < 5; j++) {

     cout << setw (4) << a[i][j];

   }

 }

 cp = cm = sp = sm = 0;

 for (i = 0; i < 5; i++) {

   for (j = 0; j < 5; j++) {

     if (a[i][j] >= -5)

       b[i][j] = a[i][j];

     else

       b[i][j] = - a[i][j];

     if (a[i][j] > 0) {

       cp++;

       sp += a[i][j];

     }

     if (a[i][j] < 0) {

       cm++;

       sm += a[i][j];

     }

   }

 }

 cout << endl << endl;

 cout << "Среднее значение положительных элементов = " << (float) sp / cp << endl;

 cout << "Среднее значение отрицательных элементов = " << (float) sm / cm << endl << endl;

 cout << "Массив B";

 for (i = 0; i < 5; i++) {

   cout << endl;

   for (j = 0; j < 5; j++) {

     cout << setw(4) << b[i][j];

   }

 }

 return 0;

}

4,6(13 оценок)
Ответ:
badoo40
badoo40
26.03.2020
Сделал с нуля, вот.

Program naconecto;vara:array [1..2,1..2] of integer;b:array [1..2,1..2] of integer;i,j,s,p:integer; BEGINrandomize;s:=0;p:=1;for i:=1 to 2 do  begin    for j:=1 to 2 do      begin        A[i,j]:=random(-100,100);        B[i,j]:=random(-100,100);        if (A[i,j] mod 3 = 0) and (A[i,j] mod 5 = 0) then          begin            s:=s+A[i,j];          end;        if B[i,j]<0 then          begin            p:=p*B[i,j];          end;      end;  end;writeln('npou3BegeHue=',p);writeln('cyMMa=',s);readln;END.

судя по твоей программы ты мыслишь так, когда говорят двумерный массив, ты думаешь что это нужно 2 отдельных массива сделать (получается одномерных), а не 1 (получается двумерный) и суёшь их каждый отдельно в один массив (двумерный), так появляется твой один двумерный, состоящий из двух одномерных. Задача хочет чтобы было два двумерных, например A и B. Ну а чтобы не создавать им 2 элемента внутри, можно рандомные числа ввести, чтобы не мучится вводить. И смотрю храмает в районе записей A[j] и A[i,j]. Разница в том, что в двумерном массиве в Pascal'e запись A[j] когда двумерный массив у тебя выведет все значения у номера столбца (что явл. j например 1), это те что сверху вниз. A[i] выведет значения всех данных первой строки (если I = 1). Чтоб конкретно к яйчейке обратится, нужно указать A[i,j] например A[1,2] будет ячейка первой строки отступом и второго столбца (отступом сверху). Представлять можно таблицой.
4,6(24 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ