Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Листинг 4.3
#include “stdafx.h” #include < iostream> using namespace std;
int _tmain(int argc, _TCHAR* argv[]) { const int N = 1000; int a[N]; int n, i, j, temp; setlocale(LC_ALL, " Russian");
cout < < “Введите количество элементов: “; cin > > n; if(n < = 0 || n > N) { cout < < “Неверный размер массива“ < < endl; return 1; }
for(i = 0; i < n; i++) cin > > a[i]; for(i = 0; i < n; i++) cout < < a[i]; cout < < endl;
// Сортировка for(i = 0; i < n; i++) for(j = i + 1; j < n; j++) if(a[i] > a[j]) { temp = a[i]; a[i] = a[j]; a[j] = temp; }
cout < < “После сортировки: “; for(i = 0; i < n; i++) cout < < a[i] < < “ “; cout < < endl;
getch(); return 0; } Аппаратура и материалы. Для выполнения лабораторной работы необходим персональный компьютер со следующими характеристиками: процессор Intel Pentium-совместимый с тактовой частотой 800 МГц и выше, оперативная память - не менее 64 Мбайт, свободное дисковое пространство - не менее 500 Мбайт, устройство для чтения компакт-дисков, монитор типа Super VGA (число цветов от 256) с диагональю не менее 15². Программное обеспечение - операционная система Windows2000/XP и выше, среда разработки приложений Microsoft Visual Studio. Указания по технике безопасности. Техника безопасности при выполнении лабораторной работы совпадает с общепринятой для пользователей персональных компьютеров, самостоятельно не производить ремонт персонального компьютера, установку и удаление программного обеспечения; в случае неисправности персонального компьютера сообщить об этом обслуживающему персоналу лаборатории (оператору, администратору); соблюдать правила техники безопасности при работе с электрооборудованием; не касаться электрических розеток металлическими предметами; рабочее место пользователя персонального компьютера должно содержаться в чистоте; не разрешается возле персонального компьютера принимать пищу, напитки. Методика и порядок выполнения работы. Перед выполнением лабораторной работы каждый студент получает индивидуальное задание. Защита лабораторной работы происходит только после его выполнения (индивидуального задания). При защите лабораторной работы студент отвечает на контрольные вопросы, приведенные в конце, и поясняет выполненное индивидуальное задание. Ход защиты лабораторной работы контролируется преподавателем.Порядок выполнения работы: 1. Проработать примеры, приведенные в лабораторной работе. 2. Составить программу с использованием одномерных массивов для решения задачи. Номер варианта определяется по формуле , где - номер студента по списку преподавателя. Индивидуальное задание №1. Вариант: 1. Ввести массив А из 10 элементов, найти наибольший элемент и переставить его с первым элементом. Преобразованный массив вывести. 2. Ввести массив А из 10 элементов, найти произведение положительных элементов и вывести его на экран. 3. Ввести массив А из 10 элементов, найти наименьший элемент и переставить его с последним элементом. Преобразованный массив вывести. 4. Ввести массив А из 10 элементов, найти сумму отрицательных элементов и вывести ее на экран. 5. Ввести массив А из 10 элементов, найти сумму элементов, больших 3 и меньших 8 и вывести ее на экран. 6. Ввести массив А из 10 элементов, найти разность положительных элементов, и вывести ее на экран. 7. Ввести массив А из 10 элементов, найти произведение отрицательных элементов и вывести его на экран. 8. В заданном массиве подсчитать число нулевых элементов и вывести на экран их индексы. 9. Составить программу, выдающую индексы заданного элемента или сообщающую, что такого элемента в массиве нет. 10. Ввести массив А из 10 элементов, найти произведение положительных элементов кратных 3, их количество и вывести результаты на экран. 11. Ввести массив А из 10 элементов, найти сумму отрицательных элементов кратных 7, их количество и вывести результаты на экран. 12. Ввести массив А из 10 элементов, найти сумму элементов, больших 2 и меньших 20 и кратных 8, их количество и вывести результаты на экран. 13. Ввести массив А из 10 элементов, найти сумму элементов, меньших по модулю 3 и кратных 9, их количество и вывести результаты на экран. 14. Ввести массив А из 10 элементов, найти разность положительных элементов кратных 11, их количество и вывести результаты на экран. 15. Ввести массив А из 10 элементов, найти произведение элементов, больших 8 и меньших 18 и кратных 10, их количество и вывести результаты на экран. 16. Ввести массив А из 10 элементов, найти сумму элементов кратных 2, их количество и вывести результаты на экран. 17. Ввести массив А из 10 элементов, найти квадраты элементов кратных 4 и их количество. Преобразованный массив вывести. 18. Ввести массив А из 10 элементов, найти сумму положительных элементов кратных 5, их количество и вывести результаты на экран. 19. Ввести массив А из 10 элементов. Определить количество элементов, кратных 3 и индексы последнего такого элемента. 20. В массивах U [7], D [7], V [7] содержатся значения утренней, дневной и вечерней температуры соответственно за каждый день недели. Подсчитать среднее значение дневной температуры за каждый день. 21. В массивах А [ n ], G [ n ], F [ n ] содержатся оценки учащихся по алгебре, геометрии и физике соответственно. Определить, по какому предмету лучше успеваемость. 22. В массивах U [7], D [7], V [7] содержатся значения утренней, дневной и вечерней температуры соответственно за каждый день недели. Сформировать массив S[7], в котором будут содержаться значения среднедневной температуры. Определить среднее значение температуры а неделю. 23. В массивах А [ n ], G [ n ], F [ n ] содержатся оценки учащихся по алгебре, геометрии и физике соответственно. Определить среднюю оценку по алгебре и количество учащихся, не имеющих ни одной «двойки». 24. Определить средний рост девочек и мальчиков одного класса. В классе учится n учеников. (n > 15). 25. В ЭВМ по очереди поступают результаты соревнований по плаванию на дистанции 200 м, в которых участвует n спортсменов (n > 10). Выдать на экран дисплея лучший результат. 26. Из массива целых чисел составить три других, в первый из которых записать числа, кратные 5, во второй - числа, кратные 7, а в третий - остальные числа. 27. Для заданного массива определить, каких элементов больше: положительных или отрицательных. Вывести на экран их количество. 28. В заданном одномерном массиве все отрицательные элементы заменить нулями и подсчитать их количество.
3. Составить программу с использованием одномерных массивов для решения задачи на переупорядочивание элементов массива. В качестве алгоритма сортировки использовать сортировку методом «пузырька». Номер варианта определяется по формуле , где - номер студента по списку преподавателя. Индивидуальное задание №2. Вариант: 1. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) сумму отрицательных элементов массива; 2) произведение элементов массива, расположенных между максимальным и минимальным элементами. Упорядочить элементы массива по возрастанию.
2. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) сумму положительных элементов массива; 2) произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами. Упорядочить элементы массива по убыванию.
3. В одномерном массиве, состоящем из n целых элементов, вычислить: 1) произведение элементов массива с четными номерами; 2) сумму элементов массива, расположенных между первым и последним нулевыми элементами. Преобразовать массив таким образом, чтобы сначала располагались все положительные элементы, а потом - все отрицательные (элементы, равные 0, считать положительными).
4. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) сумму элементов массива с нечетными номерами; 2) сумму элементов массива, расположенных между первым и последним отрицательными элементами. Сжать массив, удалив из него все элементы, модуль которых не превышает 1. Освободившиеся в конце массива элементы заполнить нулями. 5. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) максимальный элемент массива; 2) сумму элементов массива, расположенных до последнего положительного элемента. Сжать массив, удалив из него все элементы, модуль которых находится в интервале [ а, b ]. Освободившиеся в конце массива элементы заполнить нулями.
6. В одномерном массиве, состоящем из n целых элементов, вычислить: 1) номер максимального элемента массива; 2) произведение элементов массива, расположенных между первым и вторым нулевыми элементами. Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в нечетных позициях, а во второй половине - элементы, стоявшие в четных позициях.
7. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) номер минимального элемента массива; 2) сумму элементов массива, расположенных между первым и вторым отрицательными элементами. Преобразовать массив таким образом, чтобы сначала располагались все элементы, модуль которых не превышает 1, а потом - все остальные. 8. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) максимальный по модулю элемент массива; 2) сумму элементов массива, расположенных между первым и вторым положительными элементами. Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных.
9. В одномерном массиве, состоящем из n целых элементов, вычислить: 1) минимальный по модулю элемент массива; 2) сумму модулей элементов массива, расположенных после первого элемента, равного нулю. Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в четных позициях, а во второй половине - элементы, стоявшие в нечетных позициях.
10. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) номер минимального по модулю элемента массива; 2) сумму модулей элементов массива, расположенных после первого отрицательного элемента. Сжать массив, удалив из него все элементы, величина которых находится в интервале [ а, b ]. Освободившиеся в конце массива элементы заполнить нулями.
11. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) номер максимального по модулю элемента массива; 2) сумму элементов массива, расположенных после первого положительного элемента. Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых лежит в интервале [ а, b ], а потом - все остальные. 12. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) количество элементов массива, лежащих в диапазоне от А до В; 2) сумму элементов массива, расположенных после максимального элемента. Упорядочить элементы массива по убыванию модулей элементов.
13. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) количество элементов массива, равных 0; 2) сумму элементов массива, расположенных после минимального элемента. Упорядочить элементы массива по возрастанию модулей элементов.
14. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) количество элементов массива, больших С; 2) произведение элементов массива, расположенных после максимального по модулю элемента. Преобразовать массив таким образом, чтобы сначала располагались все отрицательные элементы, а потом - все положительные (элементы, равные 0, считать положительными).
15. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) количество отрицательных элементов массива; 2) сумму модулей элементов массива, расположенных после минимального по модулю элемента. Заменить все отрицательные элементы массива их квадратами и упорядочить элементы массива по возрастанию. 16. В одномерном массиве, состоящем из n целых элементов, вычислить: 1) количество положительных элементов массива; 2) сумму элементов массива, расположенных после последнего элемента, равного нулю. Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых не превышает 1, а потом - все остальные.
17. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) количество элементов массива, меньших С; 2) сумму целых частей элементов массива, расположенных после последнего отрицательного элемента. Преобразовать массив таким образом, чтобы сначала располагались все элементы, отличающиеся от максимального не более чем на 20%, а потом - все остальные.
18. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) произведение отрицательных элементов массива; 2) сумму положительных элементов массива, расположенных до максимального элемента. Изменить порядок следования элементов в массиве на обратный.
19. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) произведение положительных элементов массива; 2) сумму элементов массива, расположенных до минимального элемента. Упорядочить по возрастанию отдельно элементы, стоящие на четных местах, и элементы, стоящие на нечетных местах. Содержание отчета и его форма. Отчет по лабораторной работе должен состоять из: 1. Названия лабораторной работы. 2. Цели и содержания лабораторной работы. 3. Ответов на контрольные вопросы лабораторной работы. 4. Формулировки индивидуальных заданий и порядка их выполнения. Отчет о выполнении лабораторной работы в письменном виде сдается преподавателю. Вопросы для защиты работы 1. Как объявляются одномерные массивы в языке C++? 2. Какими должны быть размерности при описании статического массива в языке C++? 3. Каков диапазон изменения индекса массива в языке C++? 4. Каким образом производится инициализация массива в языке C++? 5. Чем является идентификатор массива? 6. Для чего используется управляющая последовательность \t?
Пример выполнения лабораторной работы №4: 1. Индивидуальное задание №1: 1.1. Постановка задачи: Составить программу с использованием одномерных массивов для решения задачи. Задача: ввести массив А из 10 элементов, найти сумму элементов, меньших по модулю 5, и вывести ее на экран. 1.2. UML-диаграмма:
1.3. Листинг программы: // Лабораторная работа №4 // Индивидуальное задание №1
#include " stdafx.h" #include < iostream> #include " conio.h" #include " windows.h" #include " math.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[]) { setlocale(LC_ALL, " Russian"); const int n = 10; int marks [n] = {}; int a, i, sum = 0;
cout< < " Лабораторная работа № 4\n"; cout< < " \nГорошко А.А., БАС-051\n"; cout< < " \nВариант № 6\n";
cout< < " \n\nИндивидуальное задание № 1: \n"; cout< < " \nввести массив А из 10 элементов, найти сумму\n"; cout< < " \nэлементов, меньших по модулю 5, и вывести ее на экран.\n"; cout< < " \n\nРабота программы: \n";
cout< < " \nВведите элементы массива: \n\n";
for(int i = 0; i < n; i++) { cout< < " A[" < < i< < " ]="; cin > > marks[i];
if(marks[i]< 0) marks[i] = marks[i] * -1; if(5 > marks[i]) sum += marks[i]; }
cout< < " \nСумма = " < < sum;
getch();
return 0; } 2.4. Результаты работы программы:
2. Индивидуальное задание №2: 2.1. Постановка задачи: Составить программу с использованием одномерных массивов для решения задачи на переупорядочивание элементов массива. В качестве алгоритма сортировки использовать сортировку методом «пузырька». Задача: в одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) минимальный элемент массива; 2) сумму элементов массива, расположенных между первым и последним положительными элементами. Преобразовать массив таким образом, чтобы сначала располагались все элементы, равные нулю, а потом – все остальные. 2.2. UML-диаграмма: 2.3. Листинг программы: // Лабораторная работа №4 // Индивидуальное задание №2
#include " stdafx.h" #include < iostream> #include " conio.h" #include " math.h" #include " windows.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[]) { setlocale(LC_ALL, " Russian");
const int N = 1000; int a[N]; int n, i, j, temp;
int firstPos = -1, lastPos;
cout< < " Лабораторная работа № 4\n"; cout< < " \nГорошко А.А., БАС-051\n"; cout< < " \nВариант № 6\n";
cout< < " \n\nИндивидуальное задание № 2: \n"; cout< < " \nв одномерном массиве, состоящем из n вещественных элементов, вычислить: \n"; cout< < " \n1) минимальный элемент массива; \n"; cout< < " \n2) сумму элементов массива, расположенных между первым\n"; cout< < " \nи последним положительными элементами.\n"; cout< < " \nПреобразовать массив таким образом, чтобы сначала располагались\n"; cout< < " \nвсе элементы, равные нулю, а потом – все остальные.\n"; cout< < " \n\nРабота программы: \n";
cout< < " \nВведите количество элементов: "; cin > > n; if(n < = 0 || n > N) { cout< < " Неверный размер массива" < < " \n"; return 1; } cout< < " \nВведите элементы массива: \n\n";
for(i = 0; i < n; i++) cin > > a[i];
// Поиск минимального элемента массива temp = a[0]; for(i = 0; i < n; i++) { if(a[i] < temp) temp = a[i]; } cout< < " \nМинимальный элемент массива: " < < temp < < " \n";
// Сумма элементов между первым и последним положительными элементами temp = 0; for(i = 0; i < n; i++) { // первый положительный элемент не найден и текущий > 0? if(firstPos == -1 & & a[i] > 0) firstPos = i; // тогда записываем координаты текущего элемента как первого положительного if(a[i] > 0) lastPos = i; } if(firstPos! = -1) { for(i = firstPos; i < = lastPos; i++) { temp += a[i]; } }
cout< < " \nСумма элементов массива, расположенных между";
cout< < " \nпервым и последним положительными элементами: " < < temp < < " \n";
// Сортировка temp = 0; for(i = 0; i < n; i++) for(j = 0; j < n; j++) if(a[j+1] == 0) { temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; }
cout< < " \nПосле сортировки: ";
for(i = 0; i < n; i++) cout < < a[i] < < " "; cout < < endl;
getch();
return 0; } 2.4. Результаты работы программы: Лабораторная работа №5.
Цель работы и содержание: закрепление знаний об указателях и ссылках, составление программ с указателями и ссылками.
|