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


 

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

12176. Установка операционной системы семейства Windows 270.69 KB
  Лабораторная работа №22 Установка операционной системы семейства Windows. 1. Цель работы Изучение процесса установки Windows XP 2. Теоретические сведения Windows XP это одна из самых популярных операционных систем с удобным пользовательским интерфейсом. Она инсталлируетс...
12177. Установка операционной системы UNIX 64.74 KB
  Лабораторная работа № 23 Установка операционной системы UNIX 1. Цель работы Изучение процесса установки UNIX 2. Теоретические сведения Основы инсталляции UNIX Инсталляция UNIX на диск требует больше знаний и предварительного планирования чем инсталляция DOS или Microsoft Wi...
12178. Установка операционной системы Linux 65.23 KB
  Лабораторная работа №24 Установка операционной системы Linux 1. Цель работы Изучение процесса установки Linux OC 2. Теоретические сведения Процесс установки Linux на ваш компьютер во многом определяется используемым дистрибутивом и специальным программным обеспечение...
12179. Состав и назначение пакета офисных программ MS-Office 25.63 KB
  Лабораторная работа №25 Состав и назначение пакета офисных программ MSOffice 1. Цель работы Изучение пакетного офиса MSOffice 2. Теоретические сведения Microsoft Office Офисный пакет приложений созданных корпорацией Microsoft для операционных систем Microsoft Windows и Apple Mac OS X. В
12180. Работа с антивирусными программами 27.44 KB
  Лабораторная работа № 26 Работа с антивирусными программами 1. Цель работы Изучение работы с антивирусными программами 2. Теоретические сведения Антивирусная программа антивирус программа для обнаружения компьютерных вирусов а также нежелательных считаю
12181. Резервное копирование данных 63.53 KB
  Лабораторная работа №29 Резервное копирование данных 1. Цель работы Изучение процесса резервного копирования 2. Теоретические сведения Что из себя представляет система резервного копирования Система резервного копирования это один из дополнительных комп
12182. Часть первая: ответы на основные вопросы о процессорах 68.5 KB
  Часть первая: ответы на основные вопросы о процессорах Q: Что такое FPU A: FPU это Floating Point Unit. А проще говоря блок производящий операции с плавающей точкой часто говорят запятой или математический сопроцессор. FPU помогает основному процессору выполнять математические о...
12183. Строении и принцип действия клавиатуры и мыши 98.7 KB
  Лабораторная работа № 18 Строении и принцип действия клавиатуры и мыши 1. Цель работы Изучение принципа действия клавиатуры и мыши. 2. Теоретические сведения Клавиатура Клавиатура выполнена как правило в виде отдельного устройства подключаемого к компьютеру то...
12184. Тестирование ОЗУ 146.7 KB
  Лабораторная работа № 13 Тестирование ОЗУ 1. Цель работы Изучение основных характеристик ОЗУ и выявление их ошибок 2. Теоретические сведения Основными характеристиками ОЗУ являются время доступа быстродействие емкость. Время доступа это промежуток времени за...