Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
po_programmirovaniyu_otvety.rtf
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
22.6 Mб
Скачать

2) Массив можно заполнить, вводя элементы массива с клавиатуры:

for (int i = 0; i < 12; ++i) cin >> month [i];

Обработка массива:

получение суммы элементов массива;

поиск максимума, минимума и других задаваемых значений;

сортировка массива;

выполнение однотипных действий над всеми элементами массива.

Пример использования: Вычисление суммы элементов массива вещественных чисел

#include "stdafx.h"        

#include <iostream>          

using namespace std;      

int main (void)

{ double v [10] = { 1, 2, 3, 4, 5, 6 };

unsigned int n = sizeof (v) / sizeof (double) ;

double s = 0 ;

for ( int i = 0; i < n; ++i ) s += v [ i ] ;

cout << “Summa =“ << s << endl;

return 0;

}

Вопрос 25. Одномерные массивы: последовательный поиск элементов в массивах и его организация на языке С/C++.

Нахождение минимального элемента массива

#include "stdafx.h"        

#include <iostream>          

using namespace std;      

int main (void)

{ int mas [ 6 ] = { 1, 2, 3, 4, 5, 6 };

int min = mas [ 0 ];

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

if ( mas [ i ] < min)

min = mas [ i ] ;

cout << “min = “ << min << endl;

return 0;

}

Нахождение максимального элемента массива

#include "stdafx.h"        

#include <iostream>          

using namespace std;      

int main (void)

{ int mas [ 6 ] = { 1, 2, 3, 4, 5, 6 };

int max = mas [ 0 ];

for ( int i = 5; i > 0; i-- )

if ( mas [ i ] > max)

max = mas [ i ] ;

cout << “max = “ << max << endl;

return 0; }

Нахождение числа элементов массива, больших заданного значения

#include "stdafx.h"        

#include <iostream>          

using namespace std;      

int main (void)

{ int mas [ 6 ] = { 1, 2, 3, 4, 5, 6 }, N, k = 0;

cout << “Введите значение N “ << endl;

cin >> N;

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

if ( mas [ i ] > N)

k++;

cout << “k = “ << k << endl;

return 0;

}

Нахождение индекса первого элемента массива, меньшего заданного значения

#include "stdafx.h"        

#include <iostream>          

using namespace std;      

int main (void)

{ int mas [ 6 ] = { 1, 2, 3, 4, 5, 6 }, N, k = 5;

cout << “Введите значение N “ << endl;

cin >> N;

while ( k > = 0 )

{ if ( mas [ k ] < N)

d = k;

N--; }

cout << “k = “ << k << endl;

return 0; }

Вопрос 26. Что такое вложенные циклы? Проанализировать работу программы, содержащей вложенные циклы.

В языке Си нет особого подхода к вложенным циклам. Как и в других языках программирования, в Си рассматриваются внутренние и внешние циклы. Их-то и называют вложенными. Если один цикл находится внутри другого цикла, то первый цикл называют внутренним, а второй - внешним. Подобные циклы Вы чаще всего можете встретить при работе с таблицами. Например, простейшей таблицей, как известно, является таблица умножения: 2 х 2 = 4 и так далее. Рассмотрим соответствующую задачу.

Пример:

Получить на компьютере таблицу умножения натуральных чисел.

Программу написать в языке Си.

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

Так, начало программы, в котором указаны блоки, из которых извлекаются в дальнейшем готовые библиотечные подпрограммы языка Си, окрашено в темносерый (черный) цвет.

Далее: описательная часть программы, в которой описаны все переменные, использованные в задаче, окрашена в зеленый цвет.

Следующая часть содержит начало внешнего цикла. Она окрашена в красный цвет. Вы видите, что все команды, находящиеся внутри внешнего цикла и относящиеся к внутреннему циклу, окрашены в синий цвет.

Внимательно присмотритесь: внешний цикл имеет продолжение за внутренним циклом. Поэтому Вы видите снова красный цвет команд, относящихся к внешнему циклу.

Заключительная часть программы снова окрашена в зеленый цвет. Отсюда видно, что наиболее важные части программы, содержащие внешний и внутренний циклы, выделены особо красным и синим цветом!

#include <stdio.h>

#include <windows.h>

#include <conio.h>

main()

{

char str[50];

int i,j; // счетчики циклов: внешнего и внутреннего

// Очистить экран

textbackground(4);

textcolor(15);

clrscr();

// Внешний цикл

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

{

// Внутренний цикл

for(j=1;j<5;j++)

{

printf("%d * %d = %d", i, j, i*j);

printf("\n");

}

printf("\n");

}

CharToOem("\nДля выхода нажмите любую клавишу", str);

printf(str);

getch();

}

Вопрос 27. Алгоритм пузырьковой сортировки и его реализация на языке С/C++.

#include <iostream>

using namespace std;

int main()

{

const int arraysize = 10; int hold;

int array [arraysize] = {7, 12, 100, 1, 78, 1234, 3, 18900, 512, 5021};

int hold;

//выводим на экран исходный неотсортированный массив

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

cout << array [ i ] << "; ";

cout << endl << endl;

for (int j = 1; j < arraysize; j++)

for (int k = 0; k < arraysize - 1; k++)

if ( array [ k ] > array [ k + 1 ] ) { hold = array [ k ]; array [ k ] = array [ k + 1 ]; array [ k + 1 ] = hold; }

//выводим на экран отсортированный массив

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

cout << array [ i ] << "; ";

cout << endl << endl;

return 0;

}

Вопрос 28. Алгоритмы перестановок элементов массива и их реализация на языке С/C++.

#include "stdafx.h"        

#include <iostream>          

using namespace std;      

int main (void)

{ int days [ ] = { 1, 2, 3, 4, 5, 6, 7, 8 }, i, n, tmp;

int n = sizeof ( days ) / sizeof ( int ) ;

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

{

tmp = days [ i ] ;

days [ i ] = days [ n – i – 1 ] ;

days [ n – i – 1 ] = tmp;

}

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

cout << days [ i ] << endl;

return 0;

}

Вопрос 29. Двумерные массивы: объявление, инициализация, использование. Привести пример реализации какого-либо алгоритма обработки и преобразования матриц на языке С/C++.

Двумерный массив - это массив одномерных массивов. Двумерный массив объявляется следующим образом:

тип имя_массива[размер второго измерения][размер первого измерения];

Следовательно, для объявления двумерного массива целых с размером 10 на 20 следует написать:

int d[10] [20] ;

Инициализация:

спецификатор типа имя_массива [размерN] ... [размер1] = {список значений};

Вопрос. 30 Понятие о многомерных массивах. Привести пример инициализации элементов многомерных массивов на языке С/C++.

Многомерные массивы в C++ рассматриваются как массивы, элементами которых являются массивы.

Определение многомерного массива должно содержать информацию о типе, размерности и количестве элементов каждой размерности.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]