Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Екзаменаційні білети.docx
Скачиваний:
4
Добавлен:
18.09.2019
Размер:
117.04 Кб
Скачать

Билет №22

1. Задачи перестановок в массивах

Решение таких задач сводится к выбору алгоритма просмотра массива с целью выполнить требуемые перестановки.

Пример 4. Дан одномерный целочисленный массив, заданный случайными числами на промежутке [-10; 10). Выполните циклический сдвиг элементов с нулевой позиции вправо на одну позицию. То есть должна быть реализована схема перестановок: x[0] -> x[1], x[1] -> x[2], ... , x[k-1] -> x[0].

Одним из алгоритмов такого циклического сдвига является следующая последовательность действий. Поместим в буфер последний элемент массива (buf=x[k-1] ). Выполним смещение остальных элементов вправо на одну позицию ( x[i]=x[i-1] ). При этом важен порядок смещения: на освободившееся место последнего элемента перемещается предпоследний, на место предпоследнего – предшествующий ему и т.д. В результате таких перемещений освобождается место нулевого элемента, на которое перемещается элемент из буфера. В данной задаче целесообразно выполнить вывод массива дважды: до и после циклического сдвига.

2. Задача із використанням перевантаження функцій

/*Перегруженные функции имеют одинаковые имена и типы возвращаемых значений, но разные типы параметров*/#include "stdafx.h"

#include <iostream>using namespace std;

#include<stdio.h>float average(int first_number, int second_number, int third_number );float average(float first_number, float second_number,

float third_number);int _tmain(int argc, _TCHAR* argv[]){

setlocale(LC_ALL,"Russian");

int A = 5, B = 3, C = 10;

float A1 = 5.1, B1 = 3.4, C1 = 10.5;

printf("Среднее значение 3-х целых чисел = %f\n",

average(A,B,C)/3.0); printf("Среднее значение 3-х вещественных чисел = %f\n", average(A1,B1,C1)/3.0);

system("pause"); return 0;}

/*функция для вычисления среднего значения 3-х целых чисел*/

float average(int first_number, int second_number,

int third_number ) {

return ((first_number + second_number + third_number));}

/*функция для вычисления среднего значения 3-х веществен-ных чисел*/

float average(float first_number, float second_number,

float third_number) {

return ((first_number + second_number + third_number));

}

Билет №23

Вопрос 1

 Алгоритм ввода массива с использованием цикла с предусловием

Алгоритм ввода массива с использованием безусловного цикла

Алгоритм вычисления суммы элементов массива

Вычисление произведения элементов массива

Поиска максимального элемента в массиве и его номера

Сортировка массива пузырьковым методом

 Сортировка массива выбором наибольшего элемента

Сортировка вставкой Удаление элемента из массива

2. Задачі пошуку у тексті на основі алгоритмів прямого пошуку.

//Описание функции прямого поиска подстроки в строке

int DirectSearch(char *string, char *substring){

int sl, ssl;

int res = -1;

sl = strlen(string);

ssl = strlen(substring);

if ( sl == 0 )

cout << "Неверно задана строка\n";

else if ( ssl == 0 )

cout << "Неверно задана подстрока\n";

else

for (int i = 0; i < sl - ssl + 1; i++)

for (int j = 0; j < ssl; j++)

if ( substring[j] != string[i+j] )

break;

else if ( j == ssl - 1 ){

res = i;

break;

}

return res;

}