18539

Обработка числовых последовательностей

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторная работа № 2 Обработка числовых последовательностей Существует круг задач в которых необходимо както обработать заданную числовую последовательность причем для получения результата достаточно просмотреть последовательность один раз. Например чт

Русский

2013-07-08

77 KB

37 чел.

Лабораторная работа № 2

Обработка числовых последовательностей

Существует круг задач, в которых необходимо как-то обработать заданную числовую последовательность, причем для получения результата достаточно просмотреть последовательность один раз. Например, чтобы вычислить среднее арифметическое заданной последовательности чисел, можно суммирование чисел и подсчет их количества совместить со вводом. Тогда не нужно будет хранить всю последовательность в памяти компьютера (в виде массива), достаточно иметь одну скалярную переменную целого или вещественного типа и поочередно присваивать ей вводимые значения.

Числовая последовательность может задаваться с  указанием  количества чисел или иметь какой-то признак конца.

Пусть последовательность задается в виде

A1, A2, ..., An, W

(n заранее неизвестно, W – признак конца последовательности), тогда процесс обработки в общем виде можно представить одной из двух схем:

а) цикл с постусловием б) цикл с предусловием

Фрагменты программ на Cи, соответствующие этим схемам:

а)

scanf ("%f",&a);

do

{ /* обработка a */

. . .

scanf ("%f",&a);

}

while (a!=W);

б)

scanf ("%f",&a);

while (a!=W)

{ /* обработка a */

. . .

scanf ("%f",&a);

}

В этих фрагментах предполагается, что переменная a вещественного типа (float), поэтому указан формат %f. Если же последовательность состоит из целых чисел типа int, то следует выбрать формат %d; W – символическая константа, которая должна быть определена с помощью директивы #define.

Числовая последовательность  может быть задана и с указанием количества вводимых чисел:

n, A1 , A2 , ..., An .

Тогда процесс обработки можно представить в виде:

a) полная форма б) более короткая форма

На языке Си этот процесс можно записать с помощью оператора цикла while или лучше оператора цикла for:

а) scanf  ("%d",&n); i=1;

while (i<=n)

{

scanf ("%f",&a);

/* обработка a */

. . .

i++;

}

б)  scanf ("%d",&n);

for (i=1; i<=n; i++)

{

scanf ("%f",&a);

/* обработка a */

. . .

}

Процесс обработки очередного числа может иметь линейную структуру (состоять из нескольких последовательно выполняемых операторов) или структуру ветвления, которая программируется с помощью оператора if:

if (условие) оператор1

else оператор2

В операторе if оператор1 и оператор2 могут быть составными операторами, конструкция "else оператор2" может отсутствовать, например:

if  (a % 2 != 0)

{ s=s+a;

k++;

}

Пpимечание. В опеpатоpах if, while, do-while можно использовать не только условные выражения, но и вообще любые. Это связано с тем, что в Си значение "ложь" – это 0, а "истина" – любое ненулевое число. Поэтому предыдущий опеpатоp if можно записать иначе:

if  (a % 2)  { s=s+a;  k++; }

Пример.

Задача. Даны целые числа n, A1 ,A2 , ... ,An. Вычислить сумму тех чисел последовательности, которые удовлетворяют условию |Ai | < i2.

Рис. 1. Схема алгоритма решения задачи

Программа:

#include <stdio.h>

#include <math.h>

main()

{ int n; /* количество чисел  */

int a, /* очередное число */

s=0, /* сумма*/

i; /* порядковый номер числа в посл-ти */

printf ("\nВведите количество чисел: ");

scanf ("%d",&n);

printf ("Введите числовую последовательноть:\n");

for (i=1; i<=n; i++)

{scanf ("%d",&a);

if (abs(a) < i*i)  s=s+a;

}

printf ("сумма=%d\n",s);

}

Тесты для проверки программы:

№ п/п

n

Исходная последовательность:

Ожидаемый результат:

1

6

1 -2 3 16 -5 40

Сумма=-4

2

4

-1 5 10 -20

Сумма=0

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

Введите количество чисел: 6

Введите числовую последовательность:

1 -2 3 16 -5 40

сумма=-4

Введите количество чисел: 4

Введите числовую последовательность:

-1 5 10 -20

сумма=0

Порядок выполнения работы.

1. Получить задание у преподавателя.

2. Составить схему и программу на языке Си, подобрать тесты для проверки программы на компьютере.

3. Отладить программу на компьютере и показать результаты тестирования преподавателю.

4. Оформить и сдать отчет по лабораторной работе.

Задания.

  1.  Даны натуральные числа А1, А2,… Признак конца последовательности 0. Получить количество и сумму тех членов последовательности, которые делятся на 5 и не делятся на 7.
  2.  Даны натуральные числа А1, А2,… Признак конца последовательности 0. Найти min12, А23,…).
  3.  Даны натуральные числа А1, А2,… Признак конца последовательности 0. Найти наибольший член последовательности.
  4.  Даны натуральное число n и последовательность натуральных чисел  А1, А2,…, Аn. Определить количество членов последовательности имеющих четные порядковые номера и являющихся нечетными числами.
  5.  Даны натуральное число n и последовательность действительных чисел А1, А2,…, Аn. Получить удвоенную сумму всех положительных членов последовательности.
  6.  Даны натуральное число n и последовательность действительных чисел А1, А2,…, Аn. Получить сумму отрицательных и количество положительных элементов последовательности.
  7.  Даны натуральное число n и последовательность действительных чисел А1, А2,…, Аn. Получить min1, А35,…) + max2, А4, А6,…).
  8.  Даны натуральное число n и последовательность действительных чисел  А1, А2,…, Аn. Получить (А1, А2, А3,…,Аn)*n.
  9.  Даны натуральные числа А1, А2,… Признак конца последовательности 0. Найти наименьший член последовательности.
  10.   Даны натуральное число n и последовательность натуральных чисел А1, А2,…, Аn. Определить количество членов последовательности кратных 3 и не кратных 5.
  11.   Даны натуральные числа А1, А2,… Признак конца последовательности 0. Найти max12, А23,…).
  12.  Даны натуральное число n и последовательность действительных чисел А1, А2,…, Аn. Получить A1* A2 + A2 * A3 + ... + An-1 * An .
  13.  Даны натуральное число n и последовательность действительных чисел А1, А2,…, Аn. Получить (A2 – A1)*(A3 – A2)*  ... * (An - An-1).
  14.  Даны натуральное число n и последовательность действительных чисел А1, А2,…, Аn. Проверить упорядочены ли числа последовательности по убыванию;
  15.  Даны натуральное число n и последовательность действительных чисел А1, А2,…, Аn. Проверить есть ли в последовательности одинаковые соседние числа.
  16.  Даны вещественные числа A1, A2 , ... .Признак конца последовательности число 999. Выяснить, составляют ли числа возрастающую последовательность.
  17.  Даны вещественные числа A1, A2 , ... .Признак конца последовательности число 999. Получить среднее арифметическое всех чисел.
  18.  Даны вещественные числа A1, A2 , ... .Признак конца последовательности число 999. Определить сумму положительных и произведение отрицательных чисел последовательности.
  19.  Даны вещественные числа A1, A2 , ... .Признак конца последовательности число 999. Определить разность между наибольшим числом и наименьшим числом последовательности.
  20.  Даны вещественные числа A1, A2 , ... .Признак конца последовательности число 999. Определить, сколько раз встречается в последовательности наибольшее число.


Обработка
A

Ввод A

Ввод A

A= W

да

Обработка

A

!=W

Ввод A

Ввод A

нет

нет

Ввод n

i <= n

i =1 , n

да

i = i + 1

Обработка

A

Ввод A

Обработка

A

Ввод A

i = 1

Ввод n

Оператор2

Оператор1

да

нет

условие

да

нет

i = i +1

нет

да

s=s+a

|a|<i*i

нет

да

s=0, i=1

Ввод a

начало

конец

Вывод 

s

i ≤ n  

Ввод n


 

А также другие работы, которые могут Вас заинтересовать

14807. Қазақ ақын-жырауларының тәлім-тәрбиелік идеялары 51.5 KB
  Қазақ ақынжырауларының тәлімтәрбиелік идеялары. Қазақ хандығы көптеген тайпалардың қаңлылар үйсіндер қыпшақтар арғындар наймандар дулаттар және т.б. негізінде құрылды. Қиын тарихи жағдайда қалыптаса отырып қазақ хандығы бірде ХҮІ ғ.бас кезінде нығайды бір...
14808. ҚИЫН БАЛАЛАРМЕН ЖҰМЫС 45.5 KB
  ҚИЫН БАЛАЛАРМЕН ЖҰМЫС. Бекибаева Сәнгүл Ғосманқызы қазақ тілі мен әдебиеті пәнінің мұғалімі №35жалпы орта білім беру мектебі 1 . Тәрбие отбасынан басталады Қиын балалардың отбасындағы беріктігі және өнегелі отбасында өнегелі ұрпақ тәрбиеленетіні сөзсіз....
14809. Қиял туралы жалпы ұғым 92 KB
  Қиял туралы жалпы ұғым Қиял дегеніміз сыртқы дүние заттары мен қүбылыстарының субъективтік образдарын қайтадан жаңартып өндеп бейнелеуде көрінетін тек адамға ғана тән психикалық процесс: ...барлық жан қуаттарын рухани күштерді тек қиял ғана өзіндік сақталатынс...
14810. ҚЫЗ БАЛА - ҰЛТТЫҢ ҰЯТЫ, ХАЛЫҚТЫҢ ШЫРАЙЫ 54.5 KB
  ҚЫЗ БАЛА ҰЛТТЫҢ ҰЯТЫ ХАЛЫҚТЫҢ ШЫРАЙЫ Л.Т.Байкеева В.Б.Зеткулова М.Б.Мыңбаева Тараз мемлекеттік педагогикалық институты Тараз қ. Қазақ халқы бала тәрбиесіне өте көп көңіл бөлген. Баланың ана құрсағында пайда болуына оның өмірге келуіне оның алғашқы қадамына ...
14811. Оқу мен жазу арқылы сын тұрғысынан ойлауды дамыту – педагогикалық технология 78.5 KB
  Оқу мен жазу арқылы сын тұрғысынан ойлауды дамыту педагогикалық технология Сын тұрғысынан ойлауды дамыту бағдарламасы әлемнің түкпіртүкпірінен жиылған білім берушілердің бірлескен еңбегі. Тәжірибені жүйеге келтірген Джинни Л.Стил Курт...
14812. Оқу процесінің мəн-мағынасы 83 KB
  Оқу процесінің мəнмағынасы Жоспары 1. Оқу процесінің мəні жəне дидактика жөнінде түсінік 2. Оқу дидактикалық процесс 3. Оқу процесінің қызметтері 4. Оқудың əдіснамадидактикалық жүйелері 5. Таным теориясы жəне оқу 1. Оқу процесінің мəні жəне дидактика жөнінде...
14813. Оқу формалары 98.5 KB
  Оқу формалары Жоспары 1. Оқу формасы түсінігі 2. Оқу формаларының қалыптасуы мен жетіліп баруы 3. Оқу процесін ұйымдастыру формалары 4. Оқу түрлері 1. Оқу формасы түсінігі Оқушылардың білім мазмұнын игеру ісəрекеттері əрқилы формада жүзеге асып барады. Ла...
14814. Оқушылардың танымдық қызығушылығының теориясы 71 KB
  Оқушылардың танымдық қызығушылығының теориясы. Бiлiм беру жүйесi қоғамның әлеуметтiк экономикалық дамуында жетекшi роль атқарады сондай ақ оны әрi қарай айқындай түседi. Ал бiлiмнiң қалыптасып дамуының жалпы шарттары философияның негiзгi мәселесi рухтың материяға ...
14815. Ойлау және оқыту үрдісінде оның дамытудың жолдары 61.5 KB
  Ойлау және оқыту үрдісінде оның дамытудың жолдары. Ойлау процесі объект пен субъектінің өзара әрекеті ретінде жүзеге асады.Ойлауды психологиялық тұрғыдан зерттеу дегенімізоның ішкі танымдық құпия мәнін және жемісті болуының себебін ашып көрсету яғни ойла