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.  Вывод о проделанной работе.


 

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

53482. Природні умови Італії та виникнення міста Рима 50.5 KB
  Природні умови Італії та виникнення міста Рима. Виникнення міста Рима та правління царів. Найважливішими містами були Тарент Кротон Фурії. У результаті грецькі міста виявилися беззахисними перед місцевими племенами.
53483. ИТОГИ И УРОКИ ВЕЛИКОЙ ОТЕЧЕСТВЕННОЙ ВОЙНЫ 32 KB
  Залогом победы было единство фронта и тыла сделавшее реальным лозунг военных лет: Все для фронта все для победы Трагическое начало войны поставило перед руководством страны чрезвычайно сложную задачу: переместить в глубокий тыл промышленные предприятия оборудование материальные ценности. На военное положение были переведены все рабочие и служащие: они объявлялись мобилизованными на период войны рабочий день устанавливался в 11 часов при шестидневной рабочей неделе сверхурочные становились обязательными отпуска...
53484. Зарубіжний досвід соціального страхування 84 KB
  Державне соціальне страхування є невідємною складовою соціальної системи будь-який економічно розвиненої країни. Будь-яке держава зацікавлена в тому, щоб у суспільстві не відбувалися соціальні потрясіння, а розвиток країни йшло стабільно і планомірно.
53485. Московське царство за Івана ІV 58 KB
  Московське царство за Івана ІV Мета: ознайомити учнів зі змінами в житті Московського царства в період завершення централізації країни; розглянути основні напрямки внутрішньої і зовнішньої політики Івана ІV; удосконалювати вміння учнів встановлювати причиннонаслідкові зв`язки працювати з історичною картою характеризувати роль історичних діячів. Правління Івана ІV Васильовича 15331584: а прихід Івана ІV до влади; б держава і церква; в реформи Вибраної ради; г зовнішня політика; д опричнина; 1. Перш ніж перейти до розгляду питання...
53486. Процедура правого поворота для AVL дерева и ее особенности 41.46 KB
  В 1962 году советские математики Адельсон-Вельский Г.М. и Ландис Е.А. предложили метод балансировки, требующий после включения или исключения узла лишь локальные изменения вдоль пути от корня к данному узлу, то есть времени не более O(log2n)
53488. Процедура вставки вершин в AVL дерева и ее особенности 19.29 KB
  Показатель сбалансированности в дальнейшем будем интерпретировать как разность между высотой левого и правого поддерева, а алгоритм будет основаться на типе TAVLTree, описанном выше. Непосредственно при вставке (листу) присваивается нулевой баланс
53489. УРОКИ МАТЕМАТИКИ В НАЧАЛЬНОЙ ШКОЛЕ 415 KB
  Издание содержит основные требования к урокам математики в начальной школе нормы оценок устных и письменных работ учащихся схемы анализа уроков и контрольных работ. Предложены типы уроков математики раскрыты особенности их построения приведены типичные причины затруднений практикантов на уроках. Содержание Введение 4 Этапы планирования и подготовки урока студентом 5 Действия практиканта при планировании и конкретизации задач урока. 9 Примерное содержание комбинированного урока 11 Образцы оформления конспектов...