- •Основы программирования
- •Средства создания программ
- •Работа в интегрированной среде разработки программ turbo c (Borland c)
- •Основные функциональные клавиши и сочетания клавиш в Turbo c
- •Контрольные вопросы
- •Основы языка Си
- •Составляющие языка Си
- •Понятия алгоритмических языков (На примере языка Си)
- •Структура программы на языке Си
- •Директивы препроцессора
- •Главная функция
- •Переменные и массивы
- •Объявления переменных и массивов
- •Комментарии
- •Основные операции в Си
- •Арифметические операции
- •Логические операции и операции отношения
- •Операции присваивания
- •Функции ввода и вывода
- •Функция форматированного вывода printf( )
- •Функция форматированного ввода scanf( )
- •Функция неформатированного ввода getch( )
- •Функция неформатированного ввода gets( )
- •Функция неформатированного вывода puts( )
- •Программа – диалог
- •Контрольные к лабораторной работе «Программа-диалог»
- •Программа–тест
- •Контрольные вопросы к лабораторной работе «Программа-тест»
- •Конструкция switch/case/default
- •Операторы цикла
- •Цикл for
- •Стандартные математические функции
- •Пример выполнения лабораторной работы «Вычисление значения функции»
- •Контрольные вопросы к лабораторной работе «Вычисление значения функции»
- •Вложенные циклы.
- •Использование оператора break в циклах
- •Оператор continue
- •Оператор безусловного перехода goto
- •Действия с одномерными массивами
- •Инициализация массива
- •Ввод значений элементов массива с клавиатуры
- •Заполнение массива случайными числами
- •Вычисление суммы и произведения элементов массива
- •Поиск максимального элемента массива и его номера
- •Вычисление среднего арифметического
- •Перестановка элементов в массиве
- •Сортировка массива
- •Заполнение массива элементами из другого массива.
- •Контрольные вопросы к лабораторной работе «Одномерный массив»
- •Контрольные к лабораторной работе «Программа-диалог»
- •Контрольные вопросы к лабораторной работе «Программа-тест»
- •Контрольные вопросы к лабораторной работе «Вычисление значения функции»
- •Контрольные вопросы к лабораторной работе «Одномерный массив»
Вычисление суммы и произведения элементов массива
Для накопления сумм и произведений некоторых элементов используются переменные, которые следует инициализировать значениями 0 и 1 соответственно. Если такую инициализацию не выполнить, то в этих переменных будут находиться случайные значения («мусор»), что не позволит получить верные результаты.
ПРИМЕР 33:
Задание
Составить программу вычисления суммы и произведения положительных элементов целочисленного массива a[N], заполненного случайными числами из диапазона [–8, 12]. Значение N задать директивой # define.
Решение
# include<stdio.h> # include<conio.h> # include<stdlib.h> # include<time.h> # define N 5 # define P printf void main ( ) { int s = 0, p = 1, i, a[N]; randomize(); for ( i = 0; i < N; i ++) { a[i]= -8 + random(21); P(" a[%d]=%d" , i, a[i]); if(a[i]>0){ s + = a[i]; p* = a[i]; } } P("\n Сумма положительных\ \ элементов=%d ", s); P("\n Произведение положительных\ \ элементов=%d ", p); getch(); } |
/*1*/ /*2*/ /*3*/ /*4*/ /*5*/ /*6*/ /*7*/ /*8*/ /*9*/ /*10*/ /*11*/ /*12*/ /*13*/ /*14*/ /*15*/ /*16*/ /*17*/
/*18*/
/*19*/ /*20*/ |
Поиск максимального элемента массива и его номера
ПРИМЕР 34:
Задание
Составить программу, которая заполняет целочисленный массив a[20] случайными числами из диапазона [–25, 25], находит и выводит на экран наибольший элемент этого массива и его номер. Если наибольшее значение встречается в массиве несколько раз, то вывести на экран номера всех таких элементов.
Решение
#include<stdio.h> #include<conio.h> #include<stdlib.h> #include<time.h> #define N 20 #define P printf void main( ) { int a[N] , i, kol=0, max = -30; randomize(); for (i = 0; i < N; i ++) { a[i]= –25 + random(51); P(" a[%d] = %d", i, a[i]); if(a[i] > max) max = a[i]; } P(“\n Наибольшее значение равно %d”, max); P(“ \n для элементов с индексами:”); for (i = 0; i < N; i ++) if(a[i] == max) { printf(“ %d”, i); kol++; } P(“\n Это значение встретилось в\ \ массиве %d раз”, kol); getch(); } |
/*1*/ /*2*/ /*3*/ /*4*/ /*5*/ /*6*/ /*7*/ /*8*/ /*9*/ /*10*/ /*11*//*12*//*13*//*14*//*15*/ /*16*//*17*//*18*//*19*//*20*//*21*/
/*22*//*23*/ |
Замечание
В решении данной задачи в качестве начального значения переменной max можно взять любое значение, не превосходящее –25, например, –30 (строка 11). В общем случае, когда диапазон, которому принадлежат значения элементов массива, неизвестен, в качестве начального значения переменной max можно взять любой из элементов массива а.
Вычисление среднего арифметического
ПРИМЕР 35:
Задание
Составить программу, которая заполняет массив действительных чисел a[10] значениями, введёнными с клавиатуры, и выводит на экран среднее арифметическое положительных элементов этого массива.
Решение
#include<stdio.h> #include<conio.h> #include<stdlib.h> #define N 10 #define P printf void main( ) { float sr = 0; int i, a[N] ,kol = 0; P(“\n Ввод исходного массива целых\ \ чисел:\n”); for (i = 0; i < N; i ++) { P(“a[%d] =”,i); scanf(“%d”,&a[i]); if(a[i]>0){sr+=a[i]; kol++;} } if(kol==0) P(“\n положительных\ \ элементов нет”); else P(“\n среднее арифметическое\ \ положит. элементов: = %f”,sr/kol); P(“\n Нажмите любую клавишу”); getch(); } |
/*1*/ /*2*/ /*3*/ /*4*/ /*5*/ /*6*/ /*7*/ /*8*/ /*9*/
/*10*/ /*11*/ /*12*/ /*13*/ /*14*/
/*15*/
/*16*/ /*17*/ /*18*/ |
|
Замечание
В решении данной задачи переменная sr объявлена дробного (вещественного) типа. Она используется для суммирования элементов массива. Объявлять ее целочисленной нельзя, так как при делении целого числа на целое (kol) получим неверное значение (оно не будет дробным).