Задания для самостоятельной работы
⇐ ПредыдущаяСтр 5 из 5 1. Задан двумерный массив, содержащий 3 строки и 4 столбца. Найти наибольший элемент массива, номер строки и столбца, в которых он расположен. 2. Определить количество положительных элементов каждого столбца двумерного массива, содержащего 5 строк и 5 столбцов. 3. Составить программу для вычисления средних арифметических значений положительных элементов каждого столбца двумерного массива, содержащего 6 столбцов и три строки. При условии, что в каждом столбце есть хотя бы один положительный элемент. 4. Дана действительная квадратная матрица. Заменить нулями все элементы, расположенные на главной диагонали и выше нее. 5. Даны 8 действительных чисел х1, х2, …, х8. Получить квадратную матрицу 8х8 х1 х2 … х8 х12 х22 … х82 ….. х18 х28 … х88 6. Таблица футбольного чемпионата задана квадратной матрицей порядка n, в которой все элементы, принадлежащие главной диагонали, равны нулю, а каждый элемент, не принадлежащий главной диагонали, равен 2, 1 или 0 (числу очков, набранных в игре: 2 – выигрыш, 1- ничья, 0 – проигрыш). а) Найти число команд, имеющих больше побед, чем поражений. б) Определить номера команд, прошедших чемпионат без поражений. в) Выяснить, имеется ли хотя бы одна команда, выигравшая больше половины игр. (При заполнении таблицы желательно использовать генерацию случайных чисел). 7. Дан двумерный массив, содержащий 3 строки и 4 столбца. Упорядочить массив по убыванию элементов 3-ей строки. 8. Дан двумерный массив, содержащий 5 строк и 2 столбца. Упорядочить массив по возрастанию элементов 2-го столбца. 9. Даны целые числа . Получить целочисленную матрицу b каждый элемент, которой определяется по следующей формуле , i,j=0,1,2. 10. Дана квадратная матрица А, содержащая 5 строк и 5 столбцов. Получить две квадратные матрицы В и С, элементы которых определяются по следующим формулам
11. Найти наибольший элемент главной диагонали матрицы С размером 4х4 и вывести на печать всю строку, в которой он находится. 12. Перемножить матрицы А размером nхm и В размером mхl. Элементы результирующей матрицы получить с помощью следующей формулы 13. Вычислить суммы элементов каждой строки матрицы А размером 6х6, определить наибольшее значение этих сумм. 14. Дана действительная матрица размера 6х9. Найти среднее арифметическое наибольшего и наименьшего значений ее элементов. 15. В квадратной матрице размера mxn найти значение наибольшего по модулю элемента матрицы, а также определить индексы этого элемента. Предполагается, что такой элемент единственный. 16. В данной действительной квадратной матрице порядка N найти сумму элементов строки, в которой расположен элемент с наименьшим значением. Предполагается, что такой элемент единственный. 17. Получить целочисленную квадратную матрицу порядка n, элементами которой являются числа 1, 2, 3, …, n2 , расположенные по спирали 1 2 3 4 5
Массивы символов Форма записи: char Array[10]; Статический массив – массив, в котором конкретное число элементов. Для каждого массива символов существует символ конца строки – ‘\0’, поэтому память под массив символов нужно выделять на один элемент больше. Инициализация массива символов: char Array[]={‘f’,‘i’,‘r’,‘s’,‘t’,‘ ’,‘c’,‘o’,‘u’,‘r’,‘s’,‘e’,’\0’};
Обязательный элемент для символьного массива
char Array[]=”first course”; //Это упрощённая запись доступная в С++ В этом случае компьютер автоматически вычислит размер конец строки. Один символ занимает один бит памяти. Если такую строку вводить при помощи оператора “cin”, то будет введено только первое слово “first”, так как оператор “cin”, воспринимает пробел как окончание строки, после чего прекращается ввод данных.
Функция get() Для ввода строки, обычно используется функция “get()”, в которой необходимо указать 2 аргумента. cin.get(<аргумент1>,< аргумент2>); аргумент1 – имя строковой переменной для записи входных данных. аргумент2 – целое число, указывающее размер строковой переменной. …
{ char Array[80]; cout<<”Enter the string:\n”; cin.get(Array,80); cout<<Array<<endl; return 0; } …
//Array[0] – 1-ый символ. Array[78] - 79-ый символ. Array[79] – ноль-символ (0)
Функция getline()
cin.getline(<аргумент1>,< аргумент2>); аргумент1 – имя строковой переменной для записи входных данных. аргумент2 – целое число указывающее размер строковой переменной, т.е. количество элементов строки, один из которых отводится под символ конца строки. Считывание строки завершается, как только количество считанных символов строки станет равным аргумент2, даже если считывание не достигло конца строки. В отличие от функции “get()”, функция “getline()” считывает и удаляет из строки символ разрыва строки “\n”, функция “get()” воспринимает этот символ как разделитель, и оставляет его в строке
Массивы строк (в виде 2-мерного массива)
…
char name[5][20]; // 5 строк по 20 символов cout<<”Введите 5 имён, по одному в строке:\n”; for (int i=0;i<5;i++) cin.getline(name[i],20); for (i=0;i<5;i++) cout<<name[i]<<endl; …
Функции обработки символов из библиотеки <ctype.h>
Пример:
Прочитать предложение до точки и вывести его на экран. Заменить все пробелы символом *. #include <iostream.h> #include <ctype.h> main() { char symbol; do { cin.get(symbol); // Функция “get()” Работает как с 1 так и с 2-я параметрами if (isspace(symbol)) cout<<”*”; else cout<<symbol; } while (symbol!=’.’); return 0;} Примечание: при считывании 1-го символа, функция “get()” работает с одним параметром. Функции преобразования строк из библиотеки <string.h>
Функции преобразования строки в число из библиотеки <stdlib.h>
Функция “getch()” из библиотеки <conio.h> Функция “getch()” ожидает нажатия клавиши “Enter”. Пример: #include <iostream.h> #include <conio.h> main() { getch(); return 0; }
Генерация случайных чисел Для генерации случайных чисел используется функция “rand()”, которая находится в библиотеке <stdlib.h>. Эта функция генерирует случайные числа от 0 до RAND_MAX. Константа RAND_MAX находится в библиотеке <stdlib.h> и равна 32767. В реальных задачах, такой диапазон значений практически не используется и для того, чтобы получить другой диапазон значений используется операция масштабирования.
Формула масштабирования имеет следующий вид: n=a+rand()%b; a – величина сдвига, которая равна первому числу в требуемом диапазоне целых чисел. b – масштабируемый коэффициент, который равен ширине требуемого диапазона целых чисел.
Например, если требуется сгенерировать целые числа в диапазоне от 0 до 5, то форма записи будет выглядеть следующим образом: n=rand()%6; n=1+rand()%6 - будет генерировать числа в диапазоне от 1 до 6. Пример: #include <iostream.h> #include <stdlib.h> main() { int Array[10]; for (int i=0;i<10;i++) { Array[i]=rand()%6; // Заполняет массив числами от 0 до 5 cout<<Array[i]<<endl; } return 0; } Если запустить эту программу несколько раз, то при каждом запуске, мы будем получать одни и те же значения элементов массива. Функция “rand()” генерирует псевдослучайные числа. Эта характеристика функции является очень важной при отладке программы, т.е. позволяет доказать, что программа работает должным образом (Так как программа должна возвращать одни и те же значения, при одинаковых входных данных). После того, как программа тщательно отлажена, она может быть использована для получения разных последовательностей случайных чисел при каждом её выполнении. Генерация случайных чисел называется рандомизацией. Рандомизация осуществляется при помощи функции “srand()”, которая так же находится в библиотеке <stdlib.h>. Функция “srand()” получает аргумент типа “unsigned int”, и при каждом запуске “srand()” задаёт начальное число, которое используется функцией “rand()” для генерации случайных чисел. Пример: #include <iostream.h> #include <stdlib.h> main() { unsigned int k; cin>>k; srand(k); for (int i=0;i<=5;i++) cout<<rand()%6<<endl; return 0; } Для того, чтобы генерировать случайные числа, не вводя каждый раз новое число, используемое как начальное число, можно в качестве аргумента функции “srand()” использовать системное время компьютера. srand(time(NULL)); Функция “time()” из библиотеки <time.h>, возвращает текущее время в секундах. Это время преобразуется в без знаковое целое число, которое используется как начальное значение в генерации случайных чисел. #include <iostream.h> #include <time.h> #include <stdlib.h> { srand(time(NULL)); for (int i=0;i<=5;i++) cout<<rand()%6; return 0; }
Приложение 1. Существует несколько способов записи алгоритмов. Наиболее популярен графический способ записи – “блок-схема”.
Блок-схема – последовательность блоков предписывающих выполнение определённых действий и связи между ними.
Литература 1. Харви Дейтел, Пол Дейтел. Как программировать на С++. Пер. с англ. - Москва: ЗАО "Издательство БИНОМ", 1998. 1024с. 2. Марченко А.Л. C++. Бархатный путь 3. М. Эллис, Б. Страуструп. Справочное руководство по языку C++ с комментариями: Пер. с англ. - Москва: Мир, 1992. 445с. 4. Э.А.Ишкова. С++. Начала программирования – М.: ЗАО «Издательство БИНОМ»,2000. 304 с. 5. Стенли Б. Липпман. C++ для начинающих: Пер. с англ. 2тт. - Москва: Унитех; Рязань: Гэлион, 1992, 304-345сс. 6. Бруно Бабэ. Просто и ясно о Borland C++: Пер. с англ. - Москва: БИНОМ, 1994. 400с. 7. В.В. Подбельский. Язык C++: Учебное пособие. - Москва: Финансы и статистика, 1995. 560с. 8. Т. Сван. Освоение Borland C++ 4.5: Пер. с англ. - Киев: Диалектика, 1996. 544с. 9. Г. Шилдт. Самоучитель C++: Пер. с англ. - Санкт-Петербург: BHV-Санкт-Петербург, 1998. 620с. 10. У. Сэвитч. C++ в примерах: Пер. с англ. - Москва: ЭКОМ, 1997. 736с.
Воспользуйтесь поиском по сайту: ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|