Программирование и основы алгоритмизации

ПРОГРАММИРОВАНИЕ И ОСНОВЫ АЛГОРИТМИЗАЦИИ

Методические указания к лабораторный работам

Омск

Издательство ОмГТУ

Составитель: Е. С. Гебель

Лабораторный практикум содержит методические рекомендации по выполнению лабораторных работ в объеме курса «Программирование и основы алгоритмизации» и предназначен для организации и управления самостоятельной работой студентов. Содержит описание особенностей программирования в среде Borland C/C++, синтаксиса и семантики языка С++. Приведены примеры листингов программ, предложены варианты индивидуальных заданий.

Лабораторный практикум предназначен для студентов дневной формы обучения по направлениям 220700 «Автоматизация технологических процессов и производств» и 220400 «Управление в технических системах».

Печатается по решению редакционно-издательского совета

Омского государственного технического университета

Лабораторная работа 1

ОСНОВЫ ПРОГРАМИРОВАНИЯ В СРЕДЕ Borland C++.

Алфавит языка, зарезервированые слова, операторы

Приступая к изучению языка, рассмотрим сначала правила программирования (написания текста):

1. Программирование должно быть наглядным (иметь титул, пояснительный текст).

2. Писать следует структурировано (выделяя отступами циклы, ветвления). Выделять текст можно любым количеством пробелов, пустых строк, кроме этого существуют комментарии.

3. Большие и сложные программы следует разбить на несколько простых частей и отлаживать их по отдельности.

Алфавит

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

Идентификатор – это имя любого объекта в языке. Следует придерживаться следующих правил создания имен:

1. Допускается использование английских букв и цифр.

2. Начинаться должно с буквы.

3. Прописные и строчные буквы считаются разными.

4. Должны не совпадать с зарезервированными словами.

Зарезервированые слова – это специальные идентификаторы, которые используются строго по назначению.

Список таких слов невелик. Как правило, такие слова обозначают какие-либо действия, структуры в языке. Согласно этим правилам следующие имена допускаются: аsm auto break case catch char class const continue default do double enum extern float goto if long new operator private protected public register return short signed sizeof stati struct switch template this throw try typedef typeid union unsigned virtual void volatile while.

Комментарий – специальный текст внутри таких скобок, который не считается программой, а служит или для пояснения программы, или для отладки. Обозначается // или /*…*/

Специальные знаки делятся на:

1. знаки операторов: {}, [], (), ‘,:=, ;, ., .. и т.д.

2. знаки операций: +, -, *, /, %.

3. зарезервированные слова.

Логические операторы. Используются для задания различных логических условий для проверок. Соответствуют операторам булевой алгебры:

&& – логическое и;

|| – логическое или;

! – логическое не;

<< – сдвиг содержимого влево на один разряд;

>>– сдвиг содержимого вправо на 1 разряд.

Операции SHL и SHR практически соответствуют операциям соответственно умножения и деления на 2 для целых чисел.

Операторы отношения:

== проверка на равенство;

> больше;

< меньше;

>= больше или равно;

<= меньше или равно;

!= не равно.

Структура программы

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

Таблица 1

Название раздела Ключевые слова, указывающие раздел в программе
Библиотечные файлы # include <…>
Директивы препроцессора #if, #elif, #else, #endif
Макроопределения #define ….
Пользовательские функции тип имя_функции (список параметров)
Пользовательские типы данных struct ..
Имя главной функции тип main (тип параметров)
Переменные тип идентификатор = инициализирующее значение

Операторные скобки { … } указывают начало и конец тела процедуры, функции или управляющего оператора.

Процедуры и функции – специальные программы, которые могут выполнять повторяющиеся участки с разными начальными данными (параметрами). В нужный момент описанные заранее они вызываются на выполнение. Могут быть стандартные (встроенные) и пользовательские процедуры и функции. Конструкцией, описанной выше, задаются пользовательские. Стандартные же не описываются, но требуют подключения соответствующих библиотечных файлов, содержащих их описание. Например, при использовании функции вывода printf() необходимо подключить #include <stdio.h> .

Основные типы данных

Любые данные характеризуются своими типами. Тип определяет множество допустимых значений, которые может иметь тот или иной объект, операции, применимые к нему, а также формат внутреннего представления. В С++ требуется задавать тип переменной перед ее использованием.

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

Таблица 2

Обозначение Диапазон Тип данных
short, short int, signed short , signed short int -32768... Короткое целое со знаком
unsigned short, unsigned short int 0...65535 Короткое целое без знака
int, signed, signed int Зависит от реализации Целое
unsigned, unsigned int Зависит от реализации Целое без знака
long, signed long, long int -2147483648… Длинное целое со знаком
unsigned long 0...4294967295 Длинное целое без знака

Символьный тип определяется зарезервированным словом CHAR и задает полный набор ASCII-символов (табл. 3).

Таблица 3

Обозначение Диапазон Тип данных
char, signed char -128...127 Символьный со знаком
unsigned char 0...255 Символьный без знака

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

Таблица 4

Обозначение Диапазон Тип данных
float -3.4e-38... 3.14e+38 Вещественное число с плавающей точкой
double -1.7е-308..1.7е308 Вещественное число удвоенной точности
long double   -3.4e-4932... 3.4e4932 Длинное вещественное число удвоенной точности

Для непосредственного обозначения логических значений в C++ используются целочисленные значения 0 - ложь и 1 - истина. Кроме того, в логических операциях любое ненулевое значение операнда ассоциируется с единицей. Поэтому отрицанием нулевого значения является 1, т.е. истина, а отрицанием любого ненулевого значения оказывается 0, т.е. ложь.

Тип void (отсутствие типа) не имеет ни значений, ни действий.

Лабораторная работа 2

Лабораторная работа 3

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

Лабораторная работа 5

Лабораторная работа 6

УКАЗАТЕЛИ

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

Пример.

int *rt; float *s; void *s_p;

указатель типа void («пустой») может указывать на объект любого типа.

Наиболее важными операциями, связанными с указателями, являются операция обращения по адресу * (разыменования или снятия ссылки) и операция определения адреса &. Первая операция служит для присваивания или считывания значений переменной, на которую ссылается данный указатель. Вторая операция возвращает адрес памяти своего операнда. Размер возвращаемого адреса зависит от применяемой модели динамической памяти.

Пример.

#include <stdio.h>

void main ()

{int i=10, s, *x, *f, *v=&i, *x=9,s=5,f=&s;

printf (“\n Размер x=%d”, sizeof(x));

printf (“\n Значение указателей x=%u v=%u &i=%u”, x, v, &i);

printf (“\n Значение по адресу x=%d”, *x);

printf (“\n Адрес s=%u”, &s);

}

При работе с динамическими переменными типа указатель распространенной ошибкой является то, что при описании указатель не инициализируется, что приводит к тому, что компилятор резервирует память только для хранения адреса. В примере, приведенном выше, под переменные *х и *f отводится только два байта под хранение адреса и не отводится два байта под хранение переменной типа int. Что может привести к попытке размещения в процессе выполнения программы значения переменной по начальному адресу, связанному с какой-либо частью операционной системы.

При работе с переменными типа указатель следует придерживаться следующего алгоритма:

1. Предварительно инициализировать указатель, т.е. присвоить указателю адрес предварительно инициализированной переменной, как это выполнено в примере для указателя *v.

2. Использовать функции распределения динамической памяти – «кучи», описанные в библиотечном файле alloc.h:

- void *malloc(unsigned s) – выделение памяти размером s байт;

- void *calloc (unsigned nel, unsigned els) – выделение памяти для nel элементов, для которых размер каждого элемента определяется переменной els,

- void *realloc(void *blok, unsigned s) – изменение размера ранее выделенной памяти для блока *block до величины s байт;

- void far *farcalloc(unsigned long nel, unsigned long els) – выделение памяти для дальней ее модели из nel элементов, где размер каждого элемента els;

- void free (void *blok) – освобождение ранее выделенной памяти.

Все функции имеют тип void, поэтому они совместимы с указателями любого типа и справедлива запись x=(int*)malloc(sizeof(int)), т.е. адрес, выдаваемой функцией malloc, связывается с типом int. Данные функции гарантируют, что переменной-указателю не присваивается адрес, используемой системой.

Пример. Вычислить сумму n элементов массива вещественного типа.

# include <stdio.h>

# include <alloc.h>

void main()

{float *a, s=0, *prn, f;

int i, n;

printf (“Введите размер массива а \n”);

scanf(“%d”,&n);

a=(float *)malloc(n*sizeof(float));

if (a==0) {printf (“No memory”); exit (1);}

else {ptr=a; printf(“Input array a \n”);

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

{scanf(“%f”, ptr); f=*ptr; s+=f; ptr++;}

printf (“s=%e\n”, s);

}

free(a);

}

Лабораторная работа 8

Лабораторная работа 9

СТРУКТУРЫ И ОБЪЕДИНЕНИЯ

Помимо массивов к структурированным или агрегатным типам относятся структуры и объединения, которые заключают в себе данные разного типа. Структура описывается следующим образом:

struct <имя структуры>

{

тип <имя_поля1>;

тип <имя_поля2>;

тип <имя_поляN>;

};

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

Пример. Определения структуры STUDENT (сведений о студенте)

struct STUDENT {

сhar Name[30];

char Groupe[5];

int Age;

};

Такая запись не задает никакой переменной и выделения памяти не происходит. Под именем STUDENT задается частный вид структуры или шаблон струк­туры, т.е. определен новый тип struсt STUDENT. Для объяв­ления конкретных переменных этого типа можно написать:

struct <имя структуры> <список переменных>;

Пример. struct STUDENT stud1, stud2;

Переменные также могут задаваться одновременно с шаблоном

struct STUDENT {

сhar Name[30];

char Groupe[5];

int Age;

} stud1, stud2;

Теперь объявлены две переменные и компилятор автоматически выделит под них память (под каждую переменную непрерывный участок).

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

struct stud1="Иванов И.","А-319", 21;

Как и для других типов, структурам можно давать имена с помощью оператора typedef, т.е.

typedef struct <имя структуры>

{

тип <имя_поля1>;

тип <имя_поля2>;

тип <имя_поляN>;

} <имя типа>;

Обращение к элементу структуры осуществляется через селектор, т.е. сначала пишется имя переменной структурного типа, а затем через точку – имя элемента.

<имя_переменной_стр>.<имя_поля>

Структура операции доступа к полю по указателю:

переменная_указатель -> имя_поля;

Операция "стрелка" употребляется, когда необходимо использовать значение элемента структуры с применением переменной-указателя.

Пример. (*uk).aили uk->a;//получение значения поля а переменной uk

Пример. Сформировать таблицу, содержащую следующую информацию о студентах: ФИО, год рождения, группа, адрес. Вывести студентов, проживающих в городе Омске.

#include <stdio.h>

#include <string.h>

#include <conio.h>

typedef struct address // создание пользовательского типа adress

{char city[30];

char street_house_flat[60];};

typedef struct data // создание пользовательского типа

//информация о студентах

{char fio[60];

int year_birthday;

char group[10];

address st_adress; };

void main()

{data st_group[25]; char st_fio[30], num_group[10], st_city[20], st_adr[60];

clrscr();

cout<< “Input data”<<endl;

for (int i=0; i<25; i++) // заполнение сведений о студентах

{ cout<< “Input FIO”; gets(st_fio); strcpy(st_group.fio,st_fio);

cout << “Input year_birthday”; cin>> st_group.year_birthday;

cout<<”Input group”; gets(num_group); strcpy(st_group.group,num_group);

cout<<”Iput city”; gets(st_city); strcpy(st_group.st_adress.city,st_city);

cout<<”Iput adress”; gets(st_adr);

strcpy(st_group.st_adress.street_hous_flat,st_adr);

}

cout << “FIO year group address”<<endl;

for (int i=0; i<25; i++) // вывод сведений о студентах,

// проживающих в Омске

if (st_group.st_adress.city==”Omsk”)

{ cout<< st_group.fio<< st_group.year_birthday<<st_group.group<<

st_group.st_adress.street_hous_flat<<endl;

}

getch();

}

ИНДИВИДУАЛЬНЫЕ ЗАДАНИЯ

ВАРИАНТ 1

1. При x =1 и x =2 вычислить значение функции y = a программирование и основы алгоритмизации - student2.ru cos bx + c, где a=1.5, b=2, c=-0.75.

2. Даны действительные числа х1, х2, у1,у2 . Найти max (x1, y1) + min (x2, y2), создав соответствующие подпрограммы-функции.

3. Для программирование и основы алгоритмизации - student2.ru программирование и основы алгоритмизации - student2.ru где а=-0.5, b=2.

4. Составьте программу, которая для целого числа k (от 1 до 30), введенного вами, напечатает фразу « Мне k лет», где k - введенное число, при этом в нужных случаях слово «лет», заменяя на слово «год» или «года». (Например: при k=70 « 70 лет», при k=15 «Мне 15 лет», при k=23 «Мне 23 года» и т. п.)

5. Сформировать таблицу для вывода значений функций F1 и F2 при изменении х в диапазоне от а до b.

a b n F1(x) F2(x)
2p sin(x)*cos(x) sin(x)+cos(x)-1

6. По древней легенде мудрец, который изобрел шахматы, потребовал от персидского шаха такое количество пшеницы, чтобы им можно было покрыть шахматную доску, положив на первую клетку 1 зерно, на вторую - 2, на третью - 4 и т.д., т.е. на каждую следующую клетку в два раза больше зерен, чем на предыдущую. Какое количество зерна может покрыть шахматную доску? Считать, что в одном грамме 15 зерен. Результат получить в тоннах.

7. Рост учеников класса представлен в виде массива. Определить средний рост мальчиков и девочек. Вывести сообщение кто выше девочки и мальчики.

8. Выяснить, является ли предложенный двумерный массив магическим квадратом, т.е. равны ли суммы его элементов по столбцам, по строкам, и по обеим диагоналям.

9. Расположить элементы одномерного массива в следующем порядке: сначала – положительные элементы, затем - нули, далее – отрицательные.

10. Преобразовать данный текст, заменяя всякое третье слово ЭТО на слово ТО.

11. Вывести анкетные данные студентов, отличников;

ВАРИАНТ 2

1. При x=1 и x=2 вычислить программирование и основы алгоритмизации - student2.ru где m=0.7, c=2.1.

2. Даны действительные числа х1,х2, у1, у2. Получить max (x1, y1)-min (x1, y1), создав соответствующие подпрограммы-функции.

3. Для программирование и основы алгоритмизации - student2.ru программирование и основы алгоритмизации - student2.ru где а=2.3.

4. Составьте программу, которая по введенному вами k - числу грибов печатает фразу «Мы нашли в лесу k грибов», причем согласовывает окончание слова «гриб» с числом k. (Количество грибов может быть любым числом: 1, 3, 34, 127 и т. д. Окончание фразы определяется значением последней цифры).

5. Сформировать таблицу для вывода значений функций F1 и F2 при изменении х в диапазоне от а до b.

a b n F1(x) F2(x)
-2 1+2x+5 (x-1)3

6. Во введенном целом пятизначном числе N определить максимальную четную цифру.

7. В одномерном массиве найти элемент, повторяющийся максимальное число раз. Если их несколько, то вывести одно из них.

8. Вывести транспортированную матрицу размера [n][n].

9. Даны два упорядоченных целочисленных массива: А, содержащий n1 элементов и В из n2 элементов. Переписать все элементы из этих массивов в массив С так, чтобы массив С был упорядоченным и содержал только несовпадающие между собой значения.

10. Дан текст. Преобразовать его, удалив из него все символы, не являющиеся буквами и числами и ко всем числам в тексте добавить 5.

11. Вывести анкетные данные студентов, успевающих на 4 и 5.

ВАРИАНТ 3

1. При x=0 и x=1.5 вычислить значение функции программирование и основы алгоритмизации - student2.ru где a=2, b=1.2.

2. Даны действительные числа х1, х2, у1,у2. Определить max (x1, y2,х2 )*min(у1-5,y2+4), создав соответствующие подпрограммы-функции.

3. Для программирование и основы алгоритмизации - student2.ru программирование и основы алгоритмизации - student2.ru где а=-2.7, b=-0.27.

4. Дата задана в виде тройки целых чисел, задающих номер дня, месяца и года. Написать программу, которая выводит эту дату в виде «9 мая 1945 года».

5. Сформировать таблицу для вывода значений функций F1 и F2 при изменении х в диапазоне от а до b.

a b n F1(x) F2(x)
-1 4e-|x|-1 cos(x)

6. С клавиатуры задается число К. Выбросить из записи К цифру обозначающую сотни. Вывести полученное число на экран

7.Дан массив целых чисел, заполненный случайными числами. Поменять местами первый элемент и максимальный.

8. Положительные элементы, расположенные на главной диагонали и побочной диагонали, заменить на минимальный элемент массива, поиск организовать в виде подпрограммы-функции.

9. В заданном двумерном массиве найдите сумму элементов в каждой строке. Сформируйте одномерный массив, содержащий полученные суммы, расположенные по возрастанию.

10. Дан текст. Преобразовать его, заменив все малые буквы одноименными большими, все числа закодировать латинскими буквами.

11. Вывести анкетные данные студентов, получивших одну оценку 3 за все время обучения.

ВАРИАНТ 4

1. При x=1 и x=2 вычислить значение функции программирование и основы алгоритмизации - student2.ru где a=4.1, b=-2.3.

2. Даны целые числа х1, х2, у1, у2. Найти max (x1, y1)* min (x1, y2, х2), создав соответствующие подпрограммы-функции.

3. Для программирование и основы алгоритмизации - student2.ru программирование и основы алгоритмизации - student2.ru где а=2.2, b=0.3.

4. Написать программу, которая по заданной букве русского алфавита определяет, гласная ли это буква.

5. Сформировать таблицу для вывода значений функций F1 и F2 при изменении х в диапазоне от а до b.

a b n F1(x) F2(x)
-2 |x+10|5 e-(x+5)

6. Ввести четырехзначное число. Превратить его в двузначное, отбросив первую и последнюю цифры. Вывести полученное двузначное число на экран.

7. Дан массив целых чисел, заполненный случайными числами. Вычислить количество элементов кратных пяти и заменить их на минимальный.

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

9. Написать программу упорядочивания элементов массива, имеющих нечетные индексы по возрастанию или убыванию в зависимости от запроса пользователя, сортировку организовать в виде подпрограммы-функции.

10. Дан текст. Преобразовать его, заменив все символы, не являющиеся буквами или цифрами на апострофы, и заменив каждую большую букву одноименной малой.

11. Вывести анкетные данные студентов, получивших в последнюю сессию оценки 2.

ВАРИАНТ 5

1. При t= - 1 и t=1 вычислить значение функции программирование и основы алгоритмизации - student2.ru где a= - 0.5, b=1.5.

2. Даны действительные числа x, y, z. Получить max (x+y,z)/ min(x*y*z), создав соответствующие подпрограммы-функции.

3. Для программирование и основы алгоритмизации - student2.ru программирование и основы алгоритмизации - student2.ru где а=1.5

4. Написать программу, позволяющую получить словесное наименование школьных оценок.

5. Сформировать таблицу для вывода значений функций F1 и F2 при изменении х в диапазоне от а до b.

a b n F1(x) F2(x)
p 2sin(2x)+1 (x+5)3(1+sin2(x))

6. Ввести четырехзначное число. Заменить первую цифру на разность первой и последней цифр, если разность положительна и разность последней и первой цифр - в противном случае

7. Дан массив чисел, заполненный случайными числами. Удалить из массива элементы меньшие заданного числа А.

8. Дан двумерный массив. Найти в каждой строке наибольший элемент и заменить элементы главной диагонали на его значение.

9. Написать программу сортировки элементов массива, имеющих четные индексы, сортировку организовать в виде подпрограммы-функции.

10. Составьте программу шифровки и дешифровки текста.

11. Вывести анкетные данные студентов, получивших в первую сессию все оценки 5.

ВАРИАНТ 6

1. При t=2 и t=4 вычислить значение функции программирование и основы алгоритмизации - student2.ru где a=0.5, b=1.3.

2. Даны действительные числа x,y,z. Получить min (x+y,z/2) 2 + max (x,z)+1, создав соответствующие подпрограммы-функции;

3. Для программирование и основы алгоритмизации - student2.ru программирование и основы алгоритмизации - student2.ru где а=2.1, b=0.37.

4. Написать программу, позволяющую по номеру дня недели - целому числу от 1 до 7 выдавать название дня недели.

5. Сформировать таблицу для вывода значений функций F1 и F2 при изменении х в диапазоне от а до b.

a b n F1(x) F2(x)
-p p 2-cos5(x) программирование и основы алгоритмизации - student2.ru

6. С помощью датчика случайных чисел получить 2 четырехзначных числа. Вывести на печать лишь те из них, в которых совпадает первая и последняя цифра. Поиск чисел оформить как функцию.

7. Дан одномерный массив чисел, заполненный случайным образом, вставить число k перед элементами меньшими нуля.

8. Дан двумерный массив. Найти в каждой строке двумерного массива максимальный и минимальный элемент и поместить их на место первого и последнего элемента строки соответственно, поиск которых организовать в виде подпрограмм-функций.

9. Написать программу сортировки элементов массива, кратных 3

10. Даны два текста А и Б. Проверьте, можно ли из букв, входящих в А, составить Б. (Буквы можно переставлять, но каждую букву можно использовать не более одного раза).

11. Вывести анкетные данные студентов, получивших за все время обучения одну оценку 4, а все остальные оценки - 5.

ВАРИАНТ 7

1. При x=0 и x=2 вычислить значение функции программирование и основы алгоритмизации - student2.ru где a=0.5, b=1.

2. Даны действительные числа x, y, z .Получить max(x,y+z) / (min (y,z)+3), создав соответствующие подпрограммы-функции.

3. Для программирование и основы алгоритмизации - student2.ru программирование и основы алгоритмизации - student2.ru где а=1.5.

4. Написать программу нахождения числа дней в месяце, если даны: номер месяца n- целое число а, равное 1 для високосного года и равное 0 в противном случае

5. Сформировать таблицу для вывода значений функций F1 и F2 при изменении х в диапазоне от а до b.

a b n F1(x) F2(x)
-1 2-x/100 20/(1+x2)

6. Ввести шестизначное число. Определить, кратное ли это число 9. (признак делимости на 9: число делиться на 9, если сумма цифр делиться на 9).

7. Дан одномерный массив целых чисел, заполненный случайными числами, заменить элементы с k1-го по k2-й кратные трем на максимальный.

8. Определить номер строки, содержащей максимальное число отрицательных элементов.

9. Дан двумерный массив, содержащий 3 строки и 4 столбца. Элементами массива являются целые числа. Переставить столбцы в массиве по убыванию элементов третьей строки, сортировку организовать в виде подпрограммы функции.

10. Из заданного предложения выбрать и напечатать только те символы, которые встречаются в нем только один раз (в том порядке, в котором они встречаются в тексте).

11. Вывести фамилии и даты рождения студентов, не получивших ни одной оценки 3 за все время обучения.

ВАРИАНТ 8

1. При x= - 1 и x=1 вычислить значение функции программирование и основы алгоритмизации - student2.ru где a=2.7, b=1.7.

2. Даны действительные числа x, y, z .Получить min(x2+y2,y2+z2)- min (4,х), создав соответствующие подпрограммы-функции.

3. Для программирование и основы алгоритмизации - student2.ru программирование и основы алгоритмизации - student2.ru где а=1.8, b=-0.5, c=3.5.

4. Написать программу, позволяющую по номеру квартала - целому числу от 1 до 4 выдавать название сезона

5. Сформировать таблицу для вывода значений функций F1 и F2 при изменении х в диапазоне от а до b.

a b n F1(x) F2(x)
-4 x3e2x exsin(x)

6. В десятичной записи числа 42*4* две цифры пропущены. Восстановите их, если известно, что число кратно 72.

7. Дан одномерный массив целых чисел, заполненный случайными числами, умножить все элементы, кратные 3, на третий элемент массива и удалить нулевые элементы.

8. Дан двумерный массив. Найдите сумму минимальных элементов главной и побочной диагонали, нахождение минимального элемента организовать в виде подпрограммы функции.

9. Дан двумерный массив, содержащий 3 строки и 4 столбца. Элементами массива являются целые числа. Переставить строки в массиве по возрастанию элементов первого столбца.

10. Дан текст заменить в нем каждую пятую из групп, стоящих рядом точек (..), одной точкой (.);

11. Вывести оценки в последнюю сессию студентов, фамилии которых начинаются с букв А и В.

ВАРИАНТ 9

1. При t=0 и t=pi/2 вычислить значение функции программирование и основы алгоритмизации - student2.ru где a=2, b=0.7, c=0.5.

2. Даны действительные числа x, y, z. Получить min(x2,y2+z)- max (у,х), создав соответствующие подпрограммы-функции

3. Для программирование и основы алгоритмизации - student2.ru программирование и основы алгоритмизации - student2.ru где а=2.5.

4. Составьте программу, которая по введенному вами k - числу этажей печатает фразу «В доме … этажей», причем согласовывает окончание слова «этаж» с числом k.

5. Сформировать таблицу для вывода значений функций F1 и F2 при изменении х в диапазоне от а до b.

a b n F1(x) F2(x)
программирование и основы алгоритмизации - student2.ru x ln2(x)

6. Определите номерной знак автомашины нарушившей правила движения, если по показаниям свидетелей номер записывается тремя цифрами, кратен 2, 5 и 7, а сумма его цифр равна 12.

7. Дан одномерный массив целых чисел, заполненный случайными числами. Заменить нулями элементы между минимальным и максимальным, кроме них самих, оранизовать поиск минимального и максимального элемента в виде подрограмм-функций.

8. Найти количество элементов в каждой строке, больших (меньших) среднего арифметического элементов данной строки.

9. Дан двумерный массив, содержащий 2 строки и 4 столбца. Элементами массива являются целые числа. Упорядочить массив по возрастанию элементов первой строки.

10. Дан текст. Преобразовать его, удалив из него все запятые предшествующие первой точке и заменив фразой все цифры, встречающиеся после первой точки. Например, цифру 3 на слово «три».

11. Вывести список студентов, фамилии которых начинаются с буквы А, и их оценки за все время обучения.

ВАРИАНТ 10

1. При x=1 и x=0 вычислить значение функции программирование и основы алгоритмизации - student2.ru где a=0.5, b=2.9.

2. Даны действительные числа x,y,z .Получить min(x+y2,y2+z)* max (z,х), создав соответствующие подпрограммы-функции.

3. Для программирование и основы алгоритмизации - student2.ru программирование и основы алгоритмизации - student2.ru где а=1, b=3.

4. Задано число, записанное двумя римскими цифрами. Вывести его значение в общепринятой арабской системе счисления.

5. Сформировать таблицу для вывода значений функций F1 и F2 при изменении х в диапазоне от а до b.

a b n F1(x) F2(x)
1/(1+ программирование и основы алгоритмизации - student2.ru ) 2x/(1-4x)

6. Найти все трехзначные числа, такие, что сумма цифр равна А, а само число делится на В (А и В вводятся с клавиатуры).

7. Дан одномерный массив: найти номер первого отрицательного элемента, делящегося на 5 с остатком 2.

8. Даны два двумерных массива А и В одинаковой размерности. Создать третий массив С, где каждый элемент равен 1, если соответствующие элементы А и В имеют одинаковый знак, иначе элемент равен 0.

9. Дан двумерный массив, содержащий 5 строк и 3 столбца. Элементами массива являются целые числа. Упорядочить массив по неубыванию элементов первого столбца, сортировку организовать в виде подпрограммы-функции.

10. Определить количество слов в тексте при условии, что слово в тексте может отеляться от других неограниченным количеством пробелов.

11. Вывести список студентов, фамилии которых начинаются с буквы А, Б, и их даты рождения.

ВАРИАНТ 11

1. При x=1 и x=2 вычислить значение функции программирование и основы алгоритмизации - student2.ru где a=1.5, b= - 1.2.

2. Для программирование и основы алгоритмизации - student2.ru программирование и основы алгоритмизации - student2.ru где а=1.3, b=6.5.

3. Вычислить сумму ряда программирование и основы алгоритмизации - student2.ru .

4. Вычислить значение функции z для двух значений параметра а при изменении аргумента х с шагом dx.

программирование и основы алгоритмизации - student2.ru

5. Дана непустая последовательность положительных целых чисел, за которой следует отрицательное число (это признак конца последовательности). Вычислить среднее геометрическое этих чисел.

6. Дано 10 вещественных чисел. Упорядочить массив по возрастанию, и вставить перед элементами, стоящими на четных местах сумму отрицательных элементов, сортировку организовать в виде подпрограммы-функции.

7. Дана матрица В[5][5]. Получить массив С удалением (либо обнулением) n–й строки и k – го столбца из матрицы В.

8. Вычислить сумму порядковых номеров всех букв, входящих в слово SUM.

9. Вывести название месяца, соответствующее выбранному пользователем номеру.

10. Сформировать матрицу вида:

программирование и основы алгоритмизации - student2.ru

11. Вывести список книг издательства «Дрофа», стоимость которых составляет более 300 руб.

ВАРИАНТ 12

1. При t=1 и t=2 вычислить значение функции программирование и основы алгоритмизации - student2.ru где a=0.5, b=1.7.

2. Для программирование и основы алгоритмизации - student2.ru программирование и основы алгоритмизации - student2.ru где b=-2.9.

3. Вычислить сумму числового ряда

программирование и основы алгоритмизации - student2.ru

4. Вычислить значение функции у для двух значений параметра а при изменении аргумента х с шагом dx..

программирование и основы алгоритмизации - student2.ru

5. Вычислить наименьшее общее кратное натуральных чисел а и b.

6. Дан массив X из n чисел. Вычислить y=X1-X2+X3-…-Xn-1+Xn.

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

8. Вычислить среднее арифметическое среди положительных элементов, стоящих на четных местах кратных 7, в целочисленном массиве, поиск среднего арифметического организовать в виде подпрограммы-функции.

9. Напечатать заданный текст с удалением из него всех букв b, непосредственно перед которыми находится буква c.

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

11. Вывести список названий Российских производителей автомобилей объем выпуска, у которых превышает 100000 год, а средняя стоимость продукции ниже средней.

ВАРИАНТ 13

1. При x= - 1 и x=1 вычислить значение функции программирование и основы алгоритмизации - student2.ru где a= - 0.5, b=1.2.

2. Для программирование и основы алгоритмизации - student2.ru программирование и основы алгоритмизации - student2.ru где а=-0.8.

3. Вычислить программирование и основы алгоритмизации - student2.ru (сравнить результат со значением функции EXP(1)).

4. Вычислить значение функции z для двух значений параметра а при изменении аргумента х с шагом dx..

программирование и основы алгоритмизации - student2.ru

5. Числа Фибоначи (fn) определяется формулами f0 = f1 = 1; fn = fn-1 + fn-2 при n=2,3, … . Вычислить сумму всех чисел Фибоначи, которые не превосходят 1000.

6. Определить, является ли заданная целая квадратная матрица шестого порядка симметричной (относительно главной диагонали).

7. Имеется строка символов. Разбить ее на символы, каждому из которых присвоить значение true, если значение символ является цифрой или false в противном случае. Вычислить результат логической операции, исходя из предположения, что между символами стоит знак плюс.

8. Задан массив из 20 чисел. Упорядочить его по возрастанию и удалить четные элементы, используя для сортировки подпрограмму-функцию.

9. Вывести слово «час» с соответствующим окончанием, т.е. «1 час», «2 часа» и т.д. до 12.

10. Сформировать матрицу А [N][N] вида:

программирование и основы алгоритмизации - student2.ru

11. Вывести список клиентов банка, проживающих в Омске, у которых год рождения расположен между 1970 и 1979.

ВАРИАНТ 14

1. При x=1 и x=2 вычислить значение функции программирование и основы алгоритмизации - student2.ru где a=0.5, b=3.1

2. Дано 18 чисел. Определить, сколько среди них отличается от последнего числа.

3. Для программирование и основы алгоритмизации - student2.ru программирование и основы алгоритмизации - student2.ru где b=1.3.

4. Организовать с помощью подпрограммы функции алгоритм определения максимального и минимального элемента и найти результат max(x*х, y)*min(x+x,z)+max(z,4*y) для любых введенных с клавиатуры значений x, y и z.

5 . Вычислить значение функции у для двух значений параметра а при изменении аргумента х с шагом dx..

программирование и основы алгоритмизации - student2.ru

6. Дана непустая последовательность положительных веще<

Наши рекомендации