Практическая работа. Примеры решения задач

  • docx
  • 10.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Практическая работа. Примеры решения задач.docx

Практическая работа. Примеры решения задач

 

1.      Запустить на компьютере Паскаль АВС

2.      Набрать программу на компьютере, выполнить ее, получить результат.

3.      Записать условия задач в тетрадь, составить к задачам  и записать в тетрадь блок-схемы,

 программы и результат выполнения программ.

 

Вычисление суммы и произведения элементов массива, удовлетворяющих заданному условию.

 

Задача 1. Дан целочисленный одномерный массив, состоящий из n элементов. Найти сумму и произведение нечетных элементов, кратных 3.

Введем обозначения: n – количество элементов в массиве; А – имя массива; i – индекс элемента массива; Ai – i-й элемент массива A; s – сумма нечетных элементов массива, кратных 3; p – произведение нечетных элементов массива, кратных 3.

Входные данные: n, A.

Выходные данные: s, p.

Первоначально сумма искомых элементов равна нулю: не просуммировано ни одно слагаемое, то есть s:=0. Далее, используя любой оператор цикла, просматриваем весь массив от первого и до последнего элемента. И если при этом элемент массива нечетный и кратен 3, то к уже накопленной сумме добавляется очередное слагаемое, т.е. s:= s + A[i]. Здесь слева и справа от знака присваивания записано имя одной и той же переменной s, именно это обеспечивает постепенное накопление суммы: s справа – уже вычисленное известное значение суммы, s  - ее новое, вычисляемое значение.

При просмотре массива можно сразу вычислить и произведение элементов массива, удовлетворяющих заданному условию. Произведение вычисляется с помощью оператора p:=p*A[i]. При этом p справа и p слева имеют разные значения: p справа – уже известное, вычисленное ранее значение произведения, p слева – новое, вычисляемое его значение. Первоначально искомое произведение равно единице, т.е. p:=1.

При решении этой задачи можно использовать любой из видов циклов. Рассмотрим один из вариантов решения задачи. Для решения используем цикл с параметром, поскольку число повторений в цикле нам известно(n).

Program Primer1_1;

Var A: Array[1..20] Of Integer;

      i, n, s, p: Integer;

Begin

     Write (‘n=’); Readln (n);

     For i:=1 To n Do Readln (A[i]);   {ввод массива}

     s:= 0;  p:=1;

     For i:=1 To n Do   {обработка массива}

      If (A[i] mod 2 <>0) and (A[i] mod 3 = 0) Then

      Begin

          s:=s+A[i];  p:= p*A[i]

      End;

      Writeln (‘s=’, s, ‘p=’, p);

      Readln

      End.

К данной программе в тетради составить блок-схему.

 Нахождение количества элементов, удовлетворяющих заданному условию

 

Задача 2. Дан массив целых чисел. Найти количество тех элементов, значения которых положительны и не превосходят заданного натурального числа А.

 

Введем обозначения: n – количество элементов в массиве; X – имя массива; i – индекс элемента массива; Xii-й элемент массива X; А – заданное число; k – количество элементов, значения которых положительны и не превосходят заданного числа А.

Входные данные: n, X, A.                                  

Выходные данные: k.

Вводим с клавиатуры значение числа А. Количество элементов, значения которых положительны и не превосходят заданного числа А, вначале полагаем равным нулю, то есть k:=0. Если очередной элемент массива положителен и не превосходят заданного числа A, то количество таких элементов нужно увеличить на единицу, то есть k:=k + 1. Таким образом, обрабатываются все элементы массива.

При решении этой задачи можно использовать любой из видов циклов. Рассмотрим один из вариантов решения задачи.  Для решения используем цикл с предусловием:

Program Primer2_1;

Var X: Array[1..20] Of Integer;

      i, n, k, A: Integer;

Begin

     Write (‘n=’); Readln (n);

     For i:=1 To n Do Readln (X[i]);   {ввод массива}

      Write (‘A=’);  Readln (A); k:= 0;  i:=1;

     While i<= n Do   {обработка массива}

   begin

      If (X[i] >0) and (X[i] <= A) Then k:=k + 1;

      i:= i+1;

   end;

      Writeln (‘k=’, k);

      Readln

  End.

К данной программе составить блок-схему.

Нахождение номеров элементов, обладающих заданным свойством

 

Задача 3. Найти номера четных элементов, стоящих на нечетных местах.

Введем обозначения: n – количество элементов в массиве; X – имя массива; i – индекс элемента массива; Xi – i-й элемент массива Х.

Входные данные: n, X.

Выходные данные: i.

Необходимо просмотреть весь массив. Если просматриваемый элемент является четным, а его порядковый номер – нечетный, то вывести его номер. При решении этой задачи можно использовать любой из видов циклов.

Составим программу с помощью цикла с параметром:

Program Primer3_1;

Var X: Array[1..20] Of Integer;

      i, n:  Integer;

Begin

     Write (‘n=’); Readln (n);

     For i:=1 To n Do Readln (X[i]);   {ввод массива}

      For i:=1 To n Do   {обработка массива}

      If (X[i] mod 2 = 0) and (i mod 2<>0) Then Write (i:5);

      Readln

      End.

 

     Задача 4. Найти  номер последнего отрицательного элемента массива.

Введем обозначения: n – количество элементов в массиве; А – имя массива; i – индекс элемента массива; Ai – i-й элемент массива A; m – номер последнего отрицательного элемента массива.

Входные данные: n, A.

Выходные данные: m.

Последний отрицательный элемент массива – это первый отрицательный элемент, который встретится при просмотре массива с конца. Если очередной элемент не является отрицательным, то нужно уменьшать значение текущего индекса (i:=i-1), пока он не станет меньше номера первого элемента или не будет найден отрицательный элемент. Переменная m получает значение i (номер отрицательного элемента), т.е. m := i. Если в массиве нет отрицательного элемента, то значение переменной m остается равным нулю.

Program Primer3_2;

Const n=10;

Var A: Array[1..n] Of Integer;

      i, m: Integer; 

Begin

      For i:=1 To n Do Readln (A[i]);   {ввод массива}

      m := 0;  i:=n;

      While  (i >= 1) and (A[i] >=0) Do i:=i-1;    m:=i;

       Writeln (‘m=’, m);

      Readln

      End.

К данной программе составить блок-схему.

Записать в тетрадь программы ,  блок-схемы, результаты работы программ.

 

Задания для самостоятельной работы

 

Задача 1. Составьте программу, которая в одномерном массиве размерностью 12 (элементы случайные числа из промежутка  от 1 до 9) подсчитывает количество чётных элементов. Пояснение Обратите внимание, что условием чётности элемента будем выводить через функцию mod (целочисленный остаток от деления). Четные числа делятся на 2 с нулевым остатком: if w[i] mod 2=0 then k:=k+1

Задача 2. Составьте программу, которая в одномерном массиве размерностью 8 (элементы массива случайные числа из промежутка от 15 до 100) находит максимальный элемент.  

 

Задача 3. Составьте программу, которая в одномерном массиве размерностью 12 (элементы массива случайные числа из промежутка от 0 до 6) находит количество элементов равных 3

Пояснение
Обратите внимание, что переменная k - счетчик, поэтому начальное значение переменной обнуляем. Условие для подсчета элементов равных 3:  if w[i]=3 then k:=k+1, т.е. если элемент равен 3, то k увеличивается на 1.


 

Посмотрите также