Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР10-С++-26-апреля-2012.doc
Скачиваний:
24
Добавлен:
15.09.2019
Размер:
2.35 Mб
Скачать

1.4.2. Формирование и вывод массива

Следующий фрагмент программы демонстрирует запись в массив значений линейной функции f (x) = k*x + b (для х меняющегося в интервале от щ до 100 с шагом 1) и вывода значений массива на экран.

Пример 10.2

double k=0.5, b = 10.0;

double f[100];

for(int i =0; i < 100; i++)

{

f[i] = k*i+b;

cout << "i = " << i << " f[i] = " << f[i];

}

1.4.3. Ввод – вывод статического одномерного массива

Для ввода n элементов одномерного массива, назовем его a, требуется организовать цикл, для ввода каждого i – го элемента, где i=0,1,2, …, n–1. Аналогичный цикл требуется организовать и для вывода элементов массива. На рисунке 10.2 изображена графическая схема ввода и вывода элементов массива.

Пример 10.3

/* Ввод – вывод статического массива*/

#include <stdio.h>

#include <conio.h>

#include <iostream.h>

#define n 10

int main()

{

int i;

float a[n];

// Ввод массива a

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

{

cout <<"Введите " << i << "-ый элемент массива a: ";

cin >> a[i];

}

// Вывод массива a

cout <<"Массив a: " << endl;

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

{

cout <<"i = " << i << " a[i] = " << a[i] <<endl;

}

cout << "Нажмите любую клавишу..." ;

getch();

return 0;

}

Рис. 10.2. Алгоритм и программа ввода – вывода статического массива

1.4.4. Ввод – вывод динамического одномерного массива

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

Пример 10.4

/* Ввод – вывод динамического массива*/

#include <stdio.h>

#include <conio.h>

#include <iostream.h>

int main()

{

int i,n;

cout << "Введите число элементов массива a: n = ";

cin >> n;

float *a=new float[n]; // Описание динамического массива

// Ввод массива a

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

{

cout <<"Введите " << i << "-ый элемент массива a: ";

cin >> a[i];

}

// Вывод массива a

cout <<"Массива a: " << endl;

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

{

cout <<"i = " << i << " a[i] = " << a[i] <<endl;

}

delete[] a; // Освобождение памяти выделенной под массив

cout << "Нажмите любую клавишу..." ;

getch();

return 0;

}

1.4.5. Суммирование элементов одномерного массива

Пример 10.5

Составить блок-схему алгоритма и программу для сумми­рования компонент вектора х, т.е. вычислить:

Блок-схема алгоритма, реализующего указанные вычисления, приведе­на на рис. 10.3.

Для рассматриваемого примера таблица идентификаторов может иметь вид:

Таблица 10.1

Таблица идентификаторов примера 8.1

В исходном выражении

у

x

i

В программе на С++

у

x

i

Программа на С++ может иметь вид:

/* Суммирование элементов массива*/

#include <stdio.h>

#include <conio.h>

#include <iostream.h>

#define n 20

int main()

{

int i;

float x[n],y;

// Ввод массива x

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

{

cout <<"Введите " << i << "-ый элемент массива x: ";

cin >> x[i];

}

// Вывод массива x

cout <<"Массива x: " << endl;

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

{

cout <<"i = " << i << " x[i] = " << x[i] <<endl;

}

y=0;

for (i=0; i<n; i++) y = y + pow(x[i],i);

cout <<"Сумма элементов массива х = " << y << endl;

cout << "Нажмите любую клавишу..." ;

getch();

return 0;

}

Рис. 10.2. Блок-схема алгоритма примера 10.3