Примеры решения задач по программированию
Примеры решения задач по программированию
Министерство образования Республики Беларусь БЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ МЕЖДУНАРОДНЫЙ ИНСТИТУТ ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ Группа 417315 КОНТРОЛЬНАЯ РАБОТА по дисциплине “Основы алгоритмизации и программирования” Выполнил: студент Проверила: Попова Ю. Б. Минск 2006 ЗАДАНИЕ № 1 ЗНАКОМСТВО СО СРЕДОЙ. ОБЪЯВЛЕНИЕ ОСНОВНЫХ ТИПОВ ДАННЫХ. ВВОД/ВЫВОД ДАННЫХ. ОПЕРАЦИИ В ЯЗЫКЕ C/C++ Цель работы Закрепление практических навыков построения простой программы, объявления основных типов данных и организации ввода/вывода переменных, применения операций при написании программ на языке C/C++. Постановка задачи Написать программу вычисления сопротивления электрической цепи, состоящей из двух параллельно соединенных сопротивлений, а затем вычислить сопротивление электрической цепи, состоящей из двух последовательно соединенных сопротивлений. Листинг программы на языке C++ #include <clx.h> #include<iostream.h> // подсоединение к программе раздела библиотеки с функциями// по потокового ввода/вывода данных void main() { // начало функции main() int a, b, c, d; // объявление переменных a, b, c целого типа cout<<"Введите значение сопротивления a и b:"; // вывод строки на экран cin>>a>>b; // ввод значений a и b c=a*b; // умножение значений a и b и присвоение переменной с d=a+b; // присваивание переменной c значения суммы переменных a и b c=c/d; cout<<"Сопротивление цепи с последующим соединением ="<<c; // вывод значения переменной c на экран c=a+b; cout<<"Сопротивление цепи с параллельным соединением ="<<c; // вывод значения переменной a на экран cin>>a; Результаты работы программы Введите значения переменных: 4 7 Результат: 2 и 11 Выводы по лабораторной работе В ходе выполнения задания была составлена схема машинного алгоритма по условию задачи, написан код программы и получены результаты работы программы. В результате выполнения работы были закреплены практические навыки построения простой программы на языке программирования C/C++, в которой были объявлены переменные целого типа. Организован ввод значений переменных с помощью оператора потокового ввода, произведен расчет суммы значений переменных и организован вывод результата на экран с помощью оператора потокового вывода. ЗАДАНИЕ № 2 ОПЕРАТОРЫ ЯЗЫКА C/C++. ФОРМАТИРОВАННЫЙ ВВОД/ВЫВОД ДАННЫХ. СТРУКТУРЫ ВЫБОРА. СТРУКТУРЫ ПОВТОРЕНИЯ Цель работы Закрепление практических навыков построения программы на языке C/C++ с использованием структур выбора if-else, switch, с использованием структур повторения do-while, while, for, а также с организацией ввода/вывода данных с применением функций форматированного ввода/вывода. Постановка задачи Написать программу вычисления площади кольца. Программа должна проверять правильность исходных данных. Использовать структуру выбора if-else. Использовать форматированный ввод/вывод данных. Листинг программы на языке C++ #include <clx.h> #include<iostream.h> void main() { int n,x; cout<<"Введите значение кольца:"<<endl; cin>>n; x=3.14; if (n<0) cout<<"Значение не верные"; // если значение условия (n<0) является истинным, на экран выводится текст Значение не верные else if (n>0) cout<<x*n*n; } Результаты работы программы Введите значения переменных: 0 Результат: Значения не верны Введите значения переменных: 4 Результат: 48 Выводы по лабораторной работе В результате выполнения работы были закреплены практические навыки построения простой программы на языке программирования C/C++, в которой были объявлены переменные целого типа. Организован ввод значений переменных с помощью оператора потокового ввода, произведен расчет суммы значений переменных и организован вывод результата на экран с помощью оператора потокового вывода а также использовалась структуру выбора if-else. ЗАДАНИЕ № 3 МАССИВЫ И УКАЗАТЕЛИ В C/C++ Цель работы Закрепление практических навыков построения программы на языке C/C++ с использованием массивов данных и переменных типа указатель. Постановка задачи 1. Написать программу, которая проверяет, представляют ли элементы введенного с клавиатуры массива возрастающую последовательность. Использовать форматированный ввод-вывод данных. Листинг программы на языке C++ #include <clx.h> #include<iostream.h> #include<stdio.h> void main() { int i,a; int mas[5]; // объявление массива mas printf("Введите элементы массива \n"); for(i=0;i<5;i++) // использование вложенной структуры повторения for для { scanf("%d",&mas[i]); // заносим значение в массив a=mas[0]; } printf(" Вывод элементов масива \n"); for(i=0;i<5;i++) // использование вложенной структуры повторения for для { printf("%d",mas[i],"\n"); // вывод суммы элементов массива mas на экран } for(i=1;i<4;i++) // использование вложенной структуры повторения for для if (i++<a) cout<<"Массив не является возрастающей последовательностью "; // использование else-if конструкции } Результаты работы программы Введите значения : 4 7 5 6 8 Результат: 4 7 5 6 8 Массив не является возрастающей последовательностью Выводы по лабораторной работе В ходе выполнения задания была составлена схема машинного алгоритма по условию задачи, написан код программы и получены результаты работы программы. В результате выполнения работы были закреплены практические навыки построения простой программы на языке программирования C/C++, в которой были объявлен массив MAS. Организован ввод значений переменных с помощью оператора потокового ввода, произведен расчет значений массива на возрастающую последовательность и организован вывод результата на экран с помощью оператора потокового вывода. ЗАДАНИЕ № 4 ФУНКЦИИ В C/C++. УКАЗАТЕЛИ НА ФУНКЦИИ. ПЕРЕГРУЗКА ФУНКЦИЙ. ШАБЛОНЫ ФУНКЦИЙ Цель работы Закрепление практических навыков построения программы на языке C/C++ с использованием функций, указателей на функции, массивов указателей на функции, рекурсивных функций, функций со списком переменной длины, параметров, используемых по умолчанию, аргументов командной строки, встроенных функций, перегруженных функций и шаблонов функций. Постановка задачи Написать программу, в которой необходимо определить массив указателей на функции. Вводить цифру, определяющую какую функцию надо выполнить: 0-найти минимальное число, 1-найти максимальное число, 2-вычислить сумму чисел, 3-вычислить разность чисел, 4-найти произведение чисел, 5-найти частное чисел, 6-завершить работу. Выполнить соответствующую функцию, используя указатель на нее, и вывести результаты на экран. В программе предусмотреть использование прототипа функции. Листинг программы на языке C++ //--------------------------------------------------------------------------- #include <clx.h> #include<stdio.h> #include<iostream.h> void fun1(int); void fun2(int); void fun3(int); void fun4(int); void fun5(int); void fun6(int); main() { void(*F[6])(int)={fun1, fun2, fun3, fun4, fun5, fun6}; // объявление массива указателей *F[6] на // функции и инициализация его именами функций int choice; printf("ВВЕДИТЕ НОМЕР ОТ 0 do 5, 6 ДЛЯ ЗАКРИТИЯ"); scanf("%d", &choice); while(choice>=0 && choice<6) { (*F[choice])(choice); // вызов функции при помощи разыменования // указателя на функцию. Указатель на функцию выбирается по индексу choice // вызванной функции в качестве аргумента передается переменная choice printf(" ВВЕДИТЕ НОМЕР ОТ 0 do 5, 6 ДЛЯ ЗАКРИТИЯ"); scanf("%d", &choice); } printf("Введено 6 для завершения"); return 0; } void fun1(int a) { int i,s,m; int mas[5]; m=99; // максимальное число for(i=0;i<5;i++) scanf("%d",&mas[i]); // использование структуры повторения do while if(i<m) m=i; printf("Min :%d", m); } // вычисление суммы чмсел void fun2(int b) { int a; int m; // максимальное число puts("Введите числа. Для завершения ведите 0:"); m=0; do {scanf("%d",&a); // использование структуры повторения do while if(a>m) m=a; // тело цикла выполняется пока значение условия (a>0) } while(a>0); // является истина printf("Максимальное число :%d", m); } void fun3(int c) { int a, b, x; // объявление переменных a, b, c целого типа cout<<"Введите значение переменных a и b:"; // вывод строки на экран cin>>a>>b; // ввод значений a и b x=a+b; //присваивание переменной c значения суммы переменных a и b cout<<"Сумма="<<x; } void fun4(int d) { int a, b, x; // объявление переменных a, b, c целого типа cout<<"Введите значение переменных a и b:"; // вывод строки на экран cin>>a>>b; // ввод значений a и b x=a-b; // присваивание переменной c значения суммы переменных a и b cout<<"Сумма="<<x;} void fun5(int e) { int a, b, x; // объявление переменных a, b, c целого типа cout<<"Введите значение переменных a и b:"; // вывод строки на экран cin>>a>>b; // ввод значений a и b x=a*b; //присваивание переменной c значения суммы переменных a и b cout<<"Сумма="<<x;} void fun6(int r) { printf("Введено %d для вызова функции fun3\n", r);}
|