50140

Программирование задач с использованием массивов. Ввод и вывод элементов. Упорядочивание. Нахождение максимального (max) элемента

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

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

Элементы массива нумеруются с нуля. Доступ к элементу массива осуществляется путем указания индекса номера элемента. Доступ к элементам массива можно осуществлять при помощи указателя. В инструкции объявления массива удобно использовать именованную константу объявленную в директиве define.

Русский

2014-01-16

51.5 KB

13 чел.

Лабораторная Работа № 11

Тема:  Программирование задач с использованием массивов. Ввод и вывод элементов. Упорядочивание. Нахождение максимального (max) элемента.

Цель: Получение практических навыков  в использовании одномерных массивов.

Теоретические сведения:

Приступая к выполнению задачи, следует вспомнить, что:

  •  Массив – это фиксированное количество упорядоченных компонент одного типа, снабжённых индексами.
  •  Чтобы описать массив, надо сообщить компилятору: сколько в нем элементов, какого типа эти элементы, как они нумеруются.
  •  Элементы массива нумеруются с нуля.
  •  Доступ к элементу массива осуществляется путем указания индекса (номера) элемента.
  •  Доступ к элементам массива можно осуществлять при помощи указателя.
  •  В инструкции объявления массива удобно использовать именованную константу, объявленную в директиве #define.
  •  Для ввода, вывода и обработки массивов удобно использовать инструкции циклов (for, while).
  •  Типичной ошибкой при использовании массивов является обращение к несуществующему элементу, то есть выход индекса за допустимое значение.

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

Текст программы:

// поиск минимального элемента массива

#include<stdio.h>

#include<conio.h>

#define HB 5 //размер массива

void main()

{

int a[HB]; //массив

int min;  //номер минимального элемента

int i; //индекс массива

printf(“\nВведите в одной строке %i целых чисел, и нажмите ENTER\n”,HB);

for (i=0;i<HB;i++)

scanf(“%i”,&a[i]);

min=0; //предположим, что первый элемент минимальный, сравним оставшиеся с ним

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

if(a[i]<a[min]) min=i;

printf(“Минимальный элемент массива: a[%i]=%i”,min+1,a[min]);

getch();

}

// поиск минимального элемента массива с использованием механизма указателей

#include<stdio.h>

#include<conio.h>

#define HB 5 //размер массива

void main()

{

int a[HB]; //массив

int *min; //номер минимального элемента

int *p;  //указатель на элемент массива

printf(“\nВведите в одной строке %i целых чисел, и нажмите ENTER\n”,HB);

p=a;

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

scanf(“%i”,p++);

min=a;  //пусть первый элемент минимальный

p=a+1;

// теперь p содержит адрес второго элемента

// Сравним оставшиеся элементы с минимальным

for (i=2;i<=HB;i++)

{

if(*p<*min) min=p;

p++; //к следующему элементу

}

printf(“Минимальный элемент массива: %i\n”,*min);

getch();

}

Варианты заданий: Осуществить ввод массива с клавиатуры и выполнить задание своего варианта:

Вариант

Массив

Задание

Условия

1

X(100)

Вычислить сумму и количество элементов массива X, удовлетворяющих условию

0≤Xi≤1

2

A(80)

Вычислить среднее арифметическое значение элемента массива А

Аi>0

3

X(70)

Переписать элементы массива Х, удовлетворяющие условию в массив Y и подсчитать их количество

-1≤Xi≤1

4

B(50)

Определить максимальный элемент массива В и его номер

Xi>0

5

C(40)

Определить минимальный элемент массива С и его номер

Xi<0

6

D(80)

Найти максимальный и минимальный элементы массива D и поменять их местами

-

7

Y(20)

Вычислить среднее геометрическое элемента массива Y

Yi>0

8

Z(30)

Расположить в массиве R сначала положительные, а затем отрицательные элементы массива Z 

-

9

N(50)

Определить сумму элементов массива N кратных трем

Ni/3*3=Ni

10

X(N)

Вычислить сумму и количество элементов массива X, удовлетворяющих условию

Xi>0, N≤30

11

A(N)

Найти среднее геометрическое элементов массива A

Ai>0, N≤50

12

X(N)

Переписать в массив Y подряд положительные элементы массива X 

Xi>0, N≤40

13

X(N)

Переписать подряд в массив Y положительные и в массив Z отрицательные элементы массива X

N≤40

14

B(K)

Определить максимальный элемент массива B, удовлетворяющий условию, и его номер

Xi<0, K≤40

15

C(K)

Определить минимальный элемент массива С, удовлетворяющий условию, и его номер

-1≤Xi≤1, K≤20

Контрольные вопросы:

  1.  Что понимается под массивом?
  2.  Как описываются массивы в разделе переменных?
  3.  Как организуется ввод массива в программе?
  4.  Как организуется вывод массива в программе?
  5.  Какие операции разрешены над элементами массива?

Содержание отчета:

  1.  Краткие теоретические сведения.
  2.  Схемы алгоритмов.
  3.  Тексты составленных программ.
  4.  Протоколы к составленным программам.
  5.  Вывод о проделанной работе.


 

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

21467. Стандарты частоты газовые 1.6 MB
  Лазеры точнее лазерное излучение позволили создать такие источники оптического излучения с такими узкими линиями излучения которые в принципе не могли существовать в естественных условиях. С развитием лазеров появилась возможность не только управлять но и стабилизировать частоту оптического излучения. В результате этого решения появилась возможность на базе лазеров у которых частота излучения и длина волны излучения в вакууме связаны простым соотношением создавать стандарты частоты и длины волны.
21468. Одночастотный лазерный интерферометр Майкельсона. Принципы измерения расстояний и линейных перемещений 395.5 KB
  1 Упрощенная схема интерферометра Майкельсона При рассмотрении двухлучевых интерферометров следует обратить внимание на временные и пространственные фазы излучения. Поскольку основным уравнением интерферометрии является уравнение для интенсивности излучения сформированного двумя полями 1 2...
21469. Лазерный доплеровский анемометр 610.5 KB
  Движущиеся вместе с газовым потоком частицы рассматриваются как приемники световых волн от неподвижного источника и одновременно как передатчикиретрансляторы оптического излучения к неподвижному наблюдателю. Частота рассеянного излучения в точке наблюдения равна: 1 где ν частота излучения источника; с скорость света; u проекция скорости частицы в направлении на точку наблюдения. Итак Доплеровская частота сигнала на выходе фотоприемника зависит от длины волны лазерного излучения скорости частиц и геометрии оптической системы....
21470. Пример одночастотного лазерного интерферометра Майкельсона. Абсолютный баллистический гравиметр 10.6 MB
  3 Принцип определения ускорения свободного падения На практике калибруются только частота длина волны лазерного излучения и частота встроенного опорного стандарта частоты для измерения интервалов времени.1 нм что равно 1 17 от длины волны 633 нм лазерного излучения.5 Направления применения гравиметрической информации g Corrections: instrumentl nd geophysicl tides ocen loding polr motion Motion eqution of freeflling body in the grvity field: TTL signl longperiod seismometer or ctive vibroisoltion system t 633 nm or 532 nm FG5216...
21471. Волоконный гироскоп 412 KB
  Принцип действия оптического гироскопа основан на эффекте Саньяка Рис. При радиусе оптического пути время достижения расщепителя лучей светом движущимся по часовой стрелке выражается как 1 в противоположном направлении 2 где с скорость света. Она не зависит от формы оптического пути положения центра вращения и коэффициента преломления. Структурные схемы гироскопов на эффекте Саньяка r и l частота генерации света с правым и левым вращением;  время необходимое для однократного прохождения светом...
21472. Оптическая мышка 277 KB
  До появления этих мышей да и еще долго после этого большинство массовых компьютерных грызунов были оптомеханическими перемещения манипулятора отслеживались оптической системой связанной с механической частью двумя роликами отвечавшими за отслеживание перемещения мыши вдоль осей Х и Y; эти ролики в свою очередь вращались от шарика перекатывающегося при перемещении мыши пользователем. На основании анализа череды последовательных снимков представляющих собой квадратную матрицу из пикселей разной яркости интегрированный DSP...
21473. ОБЩИЕ ВОПРОСЫ ФИЗИОЛОГИИ И ПАТОЛОГИИ ВОДНО-ЭЛЕКТРОЛИТНОГО ОБМЕНА 213.5 KB
  Общее количество жидкости в организме: л=кг веса тела х 06 мужчины х 05 женщины Внеклеточное пространство: л=кг веса тела х 02 Внутрисосудистое: л=кг веса тела х 0043 Внутриклеточное пространство л=общее количество жидкости в организме л внеклеточное пространство Таблица 3 Внеклеточная трансцеллюлярная жидкость: средние концентрации электролитов неэлектролитов и рН в спинномозговой жидкости рН Электролиты ммоль л N K C2 Cl HCO3 глюкоза ммоль л Молочная ктк ммоль л 74 146 35 15 125 25 28 7 167 Таблица 4...
21474. Реаниматрологическая помощь при термической травме 160 KB
  Schievens 1936 в эксперименте на животных показал что 2 4 ч после обширных ожогов объем циркулирующей крови составлял 42 61 от исходного. 1942 и Stockis 1943 характеризуется снижением объема циркулирующей крови. Снижение активного внеклеточного пространства и соответственно объема циркулирующей крови находится в прямой зависимости от размера поражения. Гиповолемия и связанная с ней гемоконцентрация в значительной мере изменяют динамическую вязкость и суспензионную стабильность крови и условие её прохождения через микроциркуляторное...
21475. Организация анестезиологической и реаниматологической помощи на этапе квалифицированной медици-нской помощи 255 KB
  Квалифицированная хирургическая и терапевтическая медицинская помощь. Особенности оказания квалифицированной медицинской помощи в рамках медицинского обеспечения соединений в наступательной операции. Особенности оказания квалифицированной медицинской помощи в рамках медицинского обеспечения соединений действующих в отрыве от главных сил армии.