
- •Компьютерная и микропроцессорная техника в электрооборудовании
- •Тема № 1 Разработка и отладка программ линейного вычислительного процесса
- •Управления вводом/выводом
- •Варианты заданий
- •Тема № 2 Разработка и отладка программ разветвляющегося вычислительного процесса. Логический условный оператор
- •Разработка и отладка программ циклического вычислительного процесса. Оператор цикла с параметром
- •Основные управляющие структуры - повторения
- •Варианты заданий
- •Тема № 6 Разработка и отладка программ с использованием структурированных типов данных – одномерных массивов
Варианты заданий
Составьте программу для вычисления сумм и произведений в заданной точке X. Значение X выберите самостоятельно из указанных в каждом варианте пределов
;
.
; x > -0,3.
;
.
; x 1,5.
; 0 x 5.
; | x | 0,95.
; | x | 1.
; | x | < 1,9.
9.
;
| x
|
0,95.
10.
;
| x
|
1.
; | x | > 1.
; | x | 1.
; | x | > 1.
; | x | 1.
; | x | 0,5.
; | x | 1.
; | x | 1.
; | x | 0,7.
; | x | 1.
; | x | 0,8.
; | x | 1
.
;| x | 1.
; | x | 0,6.
; | x | 0,2.
; | x | 2.
Тема № 6 Разработка и отладка программ с использованием структурированных типов данных – одномерных массивов
Цель работы. Разработка программ с использованием массивов данных.
Массив - это упорядоченная последовательность данных одного типа, имеющих одно имя. Массив описывается следующим образом:
тип имя массива[n1] [n2]. . .;
где n1, n2,... - размер массива по данному измерению.
Элемент массива представляет собой индексированную переменную, индекс которой указывается в квадратных скобках. Индекс может быть целой константой, целой переменной или выражением целого типа. Все массивы индексируются с нуля.
Массивы подобно переменным могут быть инициализированы началь-ными значениями, например,
float a[3] = {1.2, 3.4, -0.1};
здесь a[0] = 1.2, a[1] = 3.4, a[2 ]= -0.1.
Имя массива является константой-указателем на адрес первого элемента массива. Начальный адрес массива определяется компилятором в момент описания массива и не может быть переопределен.
Наиболее серьезная ошибка при работе массивами - выход за границу массива, т.е. когда делается попытка записать или прочитать значение по адресу памяти, который не был описан в программе.
Пример.
Вычислите сумму пяти элементов массива целого типа.
#include <stdio.h>
void main()
{ int a[5]={2,6,0,-4,3},s=0,i;
for(i=0;i<5;i++) s=s+a[i];
printf("s=%d\n",s);
}
Если в данной программе в операторе цикла записать i<=5, то будет сделана попытка обработать шестой неописанный элемент массива. Компилятор и операционная система не выявит ошибку такого рода. Проверка выхода за границу массива полностью лежит на программисте.
Студенты должны изучить правила использования одномерных массивов, а также уметь разрабатывать алгоритмы и методы решения поставленной задачи.
При решении математических, экономических и технических задач часто используются упорядоченные наборы данных, например таблицы, последовательности чисел, различные списки. Кроме того, в векторной алгебре и математической физике широко применяются такие понятия матричного исчисления, как вектор и матрица. Программными аналогами вектора (матрицы-столбца или матрицы-строки) является одномерный массив; матрицы - двухмерный или многомерный массив. Массив - это упорядоченный набор данных одного типа, имеющих одно символическое имя. Массив состоит из элементов. Каждый элемент массива описывается символическим именем и индексом в квадратных скобках, например:
Варианты заданий
Дан массив С(10). Найдите отношение S/P, где
, а
.
Дан массив А(n). Найдите сумму положительных элементов массива.
Дан массив В(n). Определите количество отрицательных элементов массива.
Дан массив А(20). Все отрицательные элементы массива замените на их квадраты. Остальные элементы оставьте без изменения.
Дан массив С(m). Найдите среднее арифметическое положительных элементов массива.
Даны два целочисленных массива: М(10) и К(10). Проверьте совпадение соответствующих элементов массивов. Если они совпадают, то выведите совпадающее значение, если не совпадают, то сделайте соответствующее сообщение.
Дан массив А(m). Найдите минимальный элемент массива и его индекс.
Дан массив Т(n). Подсчитайте количество элементов массива, которые по модулю меньше 1.
Дан массив целых чисел А(12). Найдите количество и сумму тех элементов данного массива, которые делятся на 5 и не делятся на 7, т.е. исключите, например, элемент со значением 35.
Дан массив А(20). Получите удвоенную сумму всех положительных элементов массива.
Дан массив В(n). В массиве все отрицательные элементы увеличьте на 0,5, а все неотрицательные замените на 0,1.
Найдите сумму элементов одномерного массива размером n. Разделите каждый элемент исходного массива на полученное значение. Результат получите в том же массиве.
Решите уравнение АХ = В для пяти пар значений А и В, заданных в виде двух массивов. Результат поместите в массив Х.
Вычислите скалярное произведение векторов (одномерных массивов) Х(8) и Y(8). Скалярное произведение вычисляется по формуле
.
Определите среднее значение элементов массива Х(20). Найдите индекс элемента массива, наиболее близкого к среднему значению.
Задан массив С(10). Сформируйте два массива из пяти элементов каждый, включая в первый массив элементы исходного массива с четными индексами, а во второй - с нечетными.
Дан массив А(n). Получите сумму положительных и отрицательных элементов массива.
Дан целочисленный массив С(n). Замените все элементы массива, большие семи, числом 7. Вычислите количество таких элементов.
Дан массив С(25). Получите массив В(25), который отличается от исходного тем, что все нечетные элементы удвоены.
При заданных массивах Х(10) - абсцисс, Y(10) - ординат точек плоскости XOY , подсчитайте, сколько из них находится в пределах круга с заданным радиусом R и центром в начале координат (0,0).
При заданных массивах Х(15) - абсцисс, Y(15) - ординат точек плоскости XOY , определите, сколько из них находится в 1, 2, 3, 4 квадрантах (четвертях) плоскости.
При заданных массивах А(8), В(8) сформируйте массив С(8) по правилу Ci = max (Ai, Bi), i = 1, 2, ... , 8. Подсчитайте, сколько элементов Сi получили значение Ai.
Найдите наибольшее значение (Xi + Yi ) для массивов X(15) и Y(15).
Найдите и запишите вместо X(1) - наибольший элемент, а вместо X(2) - наименьший элемент массива Х(20).
Для массива А(n) вычислите наибольшее и наименьшее значения модуля разности между соседними элементами.
БИЛИОГРАФИЧЕСКИЙ СПИСОК
1. Андреева Е.Г.Введение в программирование на языке BORLAND C/C++/Е. Г. Андреева, Л.Д Федорова, О.В. Храповицкая. – Омск: Изд-во ОмГТУ, 2002. -126 с.