Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Результаты работы программы




Ниже приведены результаты работы программы для входных данных по п.5.4:

x=0.400; y=0.400

Точка не попадает в область

 

x= 0.500; y= 0.500

Точка попадает в область

 

x= 0.700; y= 0.600

Точка попадает в область

 

x= 0.707; y= 0.707

Точка попадает в область

 

x= 0.800; y= 0.800

Точка не попадает в область

 

x= 0.100; y= 0.000

Точка попадает в область

 

x= 0.000; y= 1.000

Точка попадает в область

Выводы

При выполнении лабораторной работы изучены вопросы:

  • логические выражения в языке C
  • условный оператор языка C

Варианты индивидуальных заданий

Вариант 1

 

Вариант 2

 



Вариант 3

 

Вариант 4

 

Вариант 5

 

Вариант 6

 

Вариант 7

 

Вариант 8

 

Вариант 9

 

Вариант 10

 

Вариант 11

 

Вариант 12

 

Вариант 13

 

Вариант 14

 

Вариант 15

 

Вариант 16

 

Вариант 17

Вариант 18

 

Вариант 19

 

Вариант 20

 



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

Работа с массивами

Цель работы

Целью лабораторной работы является получение практических навыков в работе с массивами в языке C.

Темы для предварительной проработки

  • Операторы цикла языка C. Вложенные циклы.
  • Условный оператор языка C.
  • Массивы.

Задание

Объявить массив целых чисел и заполнить его случайными значениями. Размер массива и диапазон значений его элементов заданы в Вашем варианте индивидуального задания. В индивидуальных заданиях указано также, какую обработку массива следует произвести.

Для всех вариантов задания следует иметь в виду следующее:

  • 0 считается положительным числом, если в задании не оговорен какой-то другой его статус;
  • когда речь идет о какой-то последовательности чисел, имеется в виду последовательность с длиной, большей 1;
  • в тех случаях, когда задание требует выполнения каких-то вычислений, разрешается выполнять их с той точностью, которую обеспечивают операции целочисленной арифметики.

Пример решения задачи (вариант 30)

№ варианта Размерность массива Диапазон значений Что нужно сделать
30 100 -50 - 50 Во всех последовательностях отрицательных чисел ограничить значения тех элементов, абсолютное значение которых превышает абсолютное среднее для этой последовательности

Разработка алгоритма.

Схема алгоритма показана на рисунке ниже.

В первой фазе выполнения программы нам необходимо будет сформировать массив случайных чисел. Перед тем как мы будем обращаться к датчику случайных чисел, необходимо его проинициализировать (блок 2). Далее организуем цикл со счетчиком (блок 3), в каждой итерации которого генерируется следующее случайное число и записывается в следующий элемент массива (блок 4). После окончания цикла заполнения массива выводим массив на экран (блок 5).

Нам необходимо будет вычислять среднее значение последовательности, следовательно - подсчитывать количество элементов в ней. Для этого мы вводим переменную nn - счетчик элементов, нулевое значение этой переменной будет показывать, что у нас нет последовательности для обработки. В начале обработки мы устанавливаем nn=0 (блок 6).

Далее организуем цикл со счетчиком (блок 7), в котором перебираем элементы массива. Для каждого элемента в первую очередь проверяется его знак (блок 8). Если это отрицательный элемент, то это может быть первый или не первый элемент последовательности. Это можно определить, проверяя значение переменной nn: если она 0 - это первый элемент (блок 9). Для первого элемента мы запоминаем в переменной ib индекс начала последовательности, устанавливаем счетчик элементов nn в 1, а в переменную avзаписываем значение этого элемента (блок 10). Для не первого элемента мы увеличиваем счетчик на 1, а значение элемента суммируем со занчением переменной av (блок 11). Таким образом, переменная av у нас играет роль накопителя суммы элементов последовательности.

Если же очередной элемент последовательности положительный, то возникает вопрос - не является ли этот элемент первым положительным элементом после отрицательной последовательности? Это можно проверить по счетчику nn. Если элемент первый, то значение nn должно быть больше 0 (блок 12). Если нет, то нам необходимо обработать ту отрицательную последовательность, которая только что закончилась. Для обработки мы в первую очередь получаем среднее значение (блок 13). Потом организуем цикл (блок 14) со счетчиком j, который изменяется от ib (индекс начала отрицательной последовательности, который мы сохранили раньше) до i-1 (i - это индекс первого положительного элемента после отрицательной - это индекс первого положительного элемента после отрицательной последовательности, следовательно i-1 - индекс последнего элемента отрицательной последовательности). В каждой итерации этого цикла мы сравниваем j-й элемент массива со средним значением av (блок 15). Если значение элемента меньше среднего (т.е. больше по абсолютному значению), то среднее значение записывается в j-й элемент (блок 16), если же нет - ничего не происходит. По выходу из цикла мы устанавливаем счетчик nn в 0 (блок 17), как признак того, что у нас нет необработанной последовательности. Для не первого положительного элемента нет необходимости что-либо делать.

После выхода из того цикла, который начался в блоке 7, необходимо проверить, не осталась ли у нас необработанная последовательность и, если да, обработать ее. На схеме алгоритма мы показали это одним блоком 18, действия, которые выполняются в этом блоке тождественны действиям, которые детально показаны в блоках 12 - 17.

По окончанию обработки мы выводим массив-результат (блок 19) и заканчиваем программу.










Последнее изменение этой страницы: 2018-05-10; просмотров: 246.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...