русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ


Дата добавления: 2015-07-23; просмотров: 761; Нарушение авторских прав


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

Тема: Одномерные массивы.

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

Массив — это сложный (составной, структурированный) тип данных, который характеризуется следующим:

- элементы массива имеют одинаковый тип в отличие от структур, поэтому каждый элемент массива занимает одинаковый объём памяти;

- массив располагается в оперативной памяти, а не на внешнем устройстве, как файлы;

- элементы массива занимают подряд идущие ячейки, в отличие, например, от списков.

Объявление массива должно содержать три аргумента: тип каждого элемента; название массива; число элементов в массиве.

Общая форма для объявления массива имеет вид (т.е. массив объявляется так же, как и обычные переменные, но после имени следуют квадратные скобки, в которых указывается размер массива): тип имя_массива[размер];

Размер – это константа или константное выражение, которая определяет количество ячеек оперативной памяти, зарезервированной для массива. Размер – не может быть переменной, значение которой устанавливается во время выполнения программы, а так же константное выражение, определяющее размер массива, не может принимать нулевое значение. Массивы могут иметь одну или несколько размерностей. Одномерный массив имеет одну размерность, двумерный массив (матрица) – две размерности (количество строк и столбцов). Три и более размерностей на практике используются редко, так как такие массивы занимают большой объём оперативной памяти.

Примеры объявления массива:

int a[20]; //целочисленный массив из 20 элементов

floatb[5][10]; // матрица вещественных чисел из 5 строк и 10 столбцов

double с[10][10]; // квадратная матрица вещественных чисел

Доступ к элементам массива в языке С/С++ осуществляется двумя способами.

Первый, с помощью порядкового номера элемента массива, который называется индексом. В качестве индекса можно использовать выражение целого или совместимого с ним типа, в том числе константу или переменную. В качестве индекса нельзя использовать выражение вещественного типа. Нумерация элементов массива начинается с 0. Индекс последнего элемента массива на единицу меньше его размерности.



Кроме того, в языке С/С++ есть возможность обрабатывать массивы, используя указатели (адреса), так как в С++ существует связь между массивами и указателями (такой способ работы с массивами будет рассмотрен в лабораторной работе № 10)

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

a[3]=125; // присвоение значение 125 четвертому элементу массива

tmp=a[3]; // присвоение значение элемента массива переменной tmp

a[0]=a[3]; // присвоение значение эл-та массива другому эл-ту массиву

int i=2, j=3;

b[i][j]=5.5; // использование целочисленной переменной i и j для

// обращения к элементу матрицы, находящемся в пятой позиции второй строки

Способы определения массивов:

1) Ввод элементов массива с экрана или с заранее подготовленного файла.

Пример ввода с клавиатуры одномерного массива:

printf("Vvedite elementi massiva");

for (i=0; i<n; i++) //n-количество элементов в массиве

{ printf(“a[%d]=”, i+1);

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

}

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

2) Значения элементов массива можно задать (проинициализировать) во время объявления следующим образом: тип имя [N]={список значений};

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

Пример инициализации одномерного массива:

const N=5;

float a[N]={-1.1, 22, 3, -4.4, 50};

При этом если в списке меньше N значений, то недостающие элементы массива примут нулевое значение. Наоборот, если указать больше N значений, “компилятору это не понравится”.

Пример 1: Программа запрашивает с клавиатуры десять чисел, а затем выводит их на эран в обратном порядке.

#include <stdio.h>

#include <conio.h>

main () {

int array[10], i;

printf("Vvedite 10 chisel\n");

for (i = 0; i<10; i++) {

printf("chislo %d: ", i+1);

scanf("%d", &array[i]);

}

for (i = 9; i>=0; i--)

printf("%d ", array[i]);

printf("\n");

getch();

return 0;

}

 

Вывод одномерного массива.Простой вывод элементов небольшого массива в одну строку экрана можно выполнить так:

printf("Massiv:");

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

printf(“%d, ”, a[i]);

Подсчет суммы элементов одномерного массива. Алгоритм, нахождения суммы элементов одномерного массива:

- первоначально сумма принимается равная нулю, т.е. переменная, которая будет хранить сумму элементов, первоначально инициализируется нулем;

- далее начинается перебор элементов массива и к переменной, хранящей сумму элементов, добавляется каждый элемент массива, т.е. каждый следующий элемент массива добавляется к сумме предыдущих элементов.

Пример нахождения суммы элементов одномерного массива:

intsum=0;

for (i=0; i<n; i++) //n-количество элементов в массиве

sum+=a[i]; // аналогичная запись sum=sum+a[i]

printf("Summa elementov massiva = %d", sum);

 

Пример 2: Программа запрашивает с клавиатуры десять чисел, а затем выводит их сумму.

#include <stdio.h>

#include <conio.h>

main () {

int array[10], i, sum=0;

printf("Vvedite 10 chisel\n");

for (i = 0; i<10; i++) {

printf("chislo %d: ", i+1);

scanf("%d", &array[i]);

}

for (i=0; i<10; i++) //n-количество элементов в массиве

sum+=array[i];

printf("Summa 10 chisel = %d", sum);

getch();

return 0;

}

 

Нахождение минимального (максимального) элемента одномерного массива. Алгоритм, нахождения минимального (максимального) элемента:

- первоначально принимается за минимальное (максимальное) значение первый элемент массива нулю, т.е. переменная, которая будет хранить минимальное (максимальное) значение элементов массива, первоначально равна элементу с индексом 0;

- далее начинается перебор элементов массива и текущее минимальное (максимальное) значение сравнивается с текущим значением элемента, если текущее значение элемента массива меньше (больше) текущего минимального (максимального), то минимальное (максимальное) значение становиться равно текущему значению элемента массива.

Пример нахождения максимального элемента одномерного массива:

int max=a[0];

for (i=1; i<n; i++) //n-количество элементов в массиве

if (max<a[i])

max=a[i];

printf("Maximal'ni element massiva = %d", max);

Пример нахождения минимального элемента одномерного массива:

int min=a[0];

for (i=1; i<n; i++) //n-количество элементов в массиве

if (min>a[i])

min=a[i];

printf("Maximal'ni element massiva = %d", max);

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

#include<stdio.h>

#include <conio.h>

main ()

{

int array[10], i, sum=0, min, max;

printf("Vvedite 10 chisel\n");

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

{

printf("chislo %d:", i+1);

scanf("%d", &array[i]);

}

min=array[0];

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

if (min> array[i])

min= array[i];

printf("Minimal'ni element massiva = %d\n", min);

max= array[0];

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

if (max< array [i])

max= array [i];

printf("Maximal'ni element massiva = %d\n", max);

getch();

return 0;

}



<== предыдущая лекция | следующая лекция ==>
Глава XII. ЗАКЛЮЧИТЕЛЬНЫЕ И ПЕРЕХОДНЫЕ ПОЛОЖЕНИЯ | ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.921 сек.