Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика. Базовый курс. Ч.3. Основы алгоритмизации и про- граммирования в среде Visual C++ 2005.pdf
Скачиваний:
69
Добавлен:
05.02.2023
Размер:
3.81 Mб
Скачать

51

7.ОДНОМЕРНЫЕ МАССИВЫ

7.1.Понятие об одномерном массиве

Впрограммах на С++ можно использовать массивы.

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

В С++ массив, как и любая переменная, должен быть объявлен. Делается это с помощью служебного слова, указывающего тип, затем указывается имя массива и в квадратных скобках его длина. Заметим, что индексы массива ведут счет с нуля, поэтому запись вида:

double b[14]

означает, что резервируется память для14 чисел типа double с именем b и порядковыми номерами от0 до 13. Отдельный элемент масссива записывается с указанием имени и индекса в квадратных скобках.

Пример 7.1. Ввести одномерный массив из 10 целых чисел. Вывести четные по порядковому номеру элементы этого массива .

//ввод и вывод одномерного массива

#include <iostream> #include <windows.h>

52

using namespace std; int main()

{int i,a[11]; char str[256]; AnsiToOem("введи элемент номер ",str); for (i=1;i<=10;i++)

{cout<<str<<i<<" ";cin>>a[i];}; AnsiToOem(" \n число a [",str); for (i=2;i<=10;i+=2)

{cout<<str<<i<<"]= "<< a[i];} cout<<"\n";

return 0;}

При запуске программы получим такой результат (рис. 8.14).

Рис. 8.14. Результат работы примера 7.1

Замечание. При работе с массивами необходимо внимательно следить за тем, чтобы не выходить за их объявленные границы. Компилятор C++ (в отличие, например, от Паскаля) не предупреждает об этой ошибке! Попытка ввести больше элементов, чем описано, приведет к неверным результатам, а попытка вывести– выведет случайный результат, находящийся в памяти.

Попробуйте в предыдущем примере описать массивa[10] (напомним, что при этом максимальный элемент a[9], т.к. счет элементам идет с нуля), и вы не получите последнего, десятого, числа (точнее получите какое-то случайное число при выводе).

53

Еще раз обратим внимание, что работа с целыми переменными (и массивами) в C++ требует осторожности. Как отмечалось в примере 6.2, деление целого на целое дает в результате целое! Если требуется получать «правильный», вещественный, результат следует использовать преобразование – дописать перед нужной операцией (float) или (double). Если же требуется получать остаток от деления целого на целое, то применяют операцию %. Проиллюстрируем использование операции деления и вычисления остатка на простом примере.

Пример 7.2. Ввести четное и нечетное число и вычислить -ре зультаты деления их на 2 и остатки от такого деления.

#include<iostream> #include <windows.h> using namespace std; int main()

{int n,k; char str[256]; AnsiToOem("введи четное и нечетное",str);

cout <<str; cin>>n>>k;

AnsiToOem(" отстаток от деления четного на 2=",str); cout <<str<< n%2;

AnsiToOem("\n результат деления четного на 2= ",str); cout<<str<< n/2;

AnsiToOem("\n отстаток от деления нечетного на 2=",str); cout<<str<< k%2;

AnsiToOem("\n результат деления нечетного на 2=",str); cout <<str<< (float)k/2<<"\n";

return 0;}

В результате получим (рис. 8.15)

Рис. 8.15. Результат работы примера 7.2