- •Практикум по программированию на языке с
- •Порядок выполнения лабораторных работ
- •Основы программирования в среде языка си. Оператор присваивания
- •Приоритет операций в выражении
- •Задание 1 (программа 1_1)
- •Программирование разветвленных алгоритмов. Операторы передачи управления
- •Программирование циклических алгоритмов с заданным числом повторений
- •Программирование циклических алгоритмов с предусловием
- •Программирование циклических алгоритмов с постусловием
- •Модифицировать программу 3_2 для вычисления функций f1(X) и f2 (X) с применением оператора цикла с постусловием. Выполнить ее и сравнить результаты с полученными ранее.
- •Программирование алгоритмов обработки одномерных массивов
- •Задание 1
- •Обработка двумерных массивов
- •Программирование с применением функций
- •[Класс] тип имя ([список параметров])[throw (исключения)] {тело функции}
- •Return [выражение];
- •Программирование с возвратом из функций нескольких значений
- •Лабораторная работа 10 Обработка символьных и строковых данных
- •Структуры
- •Модульное программирование
- •Динамические структуры данных. Списки
- •Задание 1 (программа 14_1)
- •Графика
- •Задание к расчетно-графической работе
- •Библиографический список
- •Типы данных
- •Обозначения графические в схемах алгоритмов (гост 19.701-90)
- •Сообщения об ошибках Сообщения об ошибках периода компиляции
- •Ошибки стадии выполнения
- •Математические ошибки
- •Функции ввода-вывода для стандартных потоков
- •Функции для работы со строками
- •Библиотека заголовочных файлов
- •Контейнерные классы
Программирование алгоритмов обработки одномерных массивов
Цель работы: научиться разрабатывать и отлаживать программы с использованием регулярных типов (векторов).
Массив – набор элементов, способных хранить данные одинакового типа. Объявляя массив, необходимо сначала указать тип хранимых данных, имя массива и его размер в квадратных скобках. Размером массива называется количество его элементов.
<класс><тип><идетификатор>[конст. выраж1][конст. выраж2]…;
Квадратные скобки здесь обязательны, константное выражение в квадратных скобках задает количество элементов в массиве (размерность) по каждому измерению. Число измерений определяется числом квадратных скобок. Индексирование элементов в языке Си начинается с нуля.
Пример. Найти значение и номер наименьшего элемента в одномерном массиве. При задании элементов исходного массива типизированной константой СА решения задачи имеет вид (рис.8, а) и используется следующая программа:
#include <conio.h>
#include <stdio.h>
void main ()
{
int a[10] = {5,2,7,1,8,3,4,5,6,6};
int i, min, n;
min = a[0];
n = 0;
for (i=0; i<10; i++)
{
if (a[i]<min)
{ min = a[i];
n=i+1;
}
}
printf ("минимальный элемент %d-й равен %d\n ", n, min);
getch();
}
Если элементы массива вводятся с клавиатуры, то СА имеет вид (рис.8,б) и текст программы изменится:
#include <stdio.h>
#include <conio.h>
void main ()
{ int a[10];
int i, min, n;
printf(“Введите элементы массива: ”);
scanf ("%d",&a[0]);
min = a[0];
n = 1;
for (i=1; i<10; i++)
{
scanf ("%d", &a[i]);
if (a[i]<min)
{ min = a[i];
n = i+1;
}
}
printf ("минимальный элемент %d равен n= %d\n ", n, min);
getch();
}
Задание 1
Начертить структурную схему алгоритма, написать и отладить программу для одной из следующих задач. В программе 6_1 исходные массивы задать типизированными константами. В программе 6_2 элементы исходных массивов ввести через оператор ввода.
1. Дан массив из N чисел (N<12). Вычислить среднее геометрическое значение.
2. Дан массив из N чисел (10<N<15). Найти максимальное значение.
3. Дано 20 чисел. Найти их среднее арифметические значение.
4. Дано 12 вещественных чисел. Найти порядковый номер того из них, которое наиболее близко к какому-нибудь заданному целому числу Х.
5. Дана последовательность из 15 целых чисел. Определить количество отрицательных чисел в ней и максимальное число подряд следующих отрицательных чисел.
6. Дано 15 целых чисел. Найти наибольшее из них. Определить, сколько из чисел принимает наибольшее значение.
7. Дано целое n>1 и вещественные числа x1,x2,..,xn. Вычислить математическое ожидание и дисперсию по формулам
M=, D=.
8. Дан массив из N чисел (8<N<12). Вычислить сумму элементов с нечетными индексами и их среднее арифметические значение.
9. Даны два одномерных массива А и В. Вычислить элементы массива С по правилу: если аi и bi различны, то сi присвоить их сумму, при одинаковых аi, bi в сi переписать соответствующий элемент массива А.
10. Дано 10 вещественных чисел. Вычислить разность между максимальным и минимальным из них.
11. Дано 10 вещественных чисел. Определить, образуют ли они возрастающую последовательность.
12. Дан массив X из n чисел (6<n<10). Вычислить:
y = x1 - x2 + x3 - ...- xn-1 + xn .
13. Дано 18 чисел. Определить, количество элементов, отличных от последнего числа.
14. Дано 12 чисел. Напечатать сначала все отрицательные , а затем все остальные.
15. Сформировать одномерный массив из 15 простых чисел.
16. Дано восемь натуральных чисел. Найти их наибольший общий делитель.
17. Дана последовательность натуральных чисел. Вычислить сумму тех из них, порядковые номера (индексы) которых - простые числа.
18. Дан массив из 20 натуральных чисел. Вычислить сумму тех из них, порядковые номера которых - числа Фибоначчи, определяемые формулами f0 = f1 = 1; fn = fn-1 + fn-2 при n = 1, 2 ,3 ,... .
19. Дан массив X из n чисел. Вычислить:
y = xn(xn+xn-1)(xn + xn-1 + xn-2)...(xn + ... + x1) .
20. Дано 24 целых числа. Распечатать их в обратном порядке по шесть чисел в строке.
Задание 2 (программа 6_3)
Модифицировать программу 3_2 для функций F1(x) и F2 (x) таким образом, чтобы результаты были сформированы в виде трех одномерных массивов. Выполнить ее и сравнить результаты с полученными в лабораторных работах 3 и 4.
Лабораторная работа 7