
- •Технология программирования циклических процессов. Арифметические циклы
- •Арифметические циклы с аналитическим заданием аргумента
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма
- •Программирование задачи
- •Операторы цикла
- •Оператор цикла с предусловием
- •Правила записи и выполнения
- •Оператор цикла с постусловием
- •Структура оператора
- •Правила записи и выполнения
- •Оператор пошагового цикла for
- •Структура оператора
- •Правила записи и выполнения
- •Программа по алгоритму цикла с предусловием
- •Программа по алгоритму цикла с постусловием
- •Программа по алгоритму цикла с параметром
- •Арифметические циклы с табличным заданием аргумента
- •Постановка задачи
- •Математическая формулировка
- •Выбор метода решения
- •Составление алгоритма решения
- •Алгоритмизация структурой цикла с предусловием
- •Алгоритмизация структурой цикла с постусловием
- •Алгоритмизация структурой цикла с параметром
- •Программирование задачи
- •Программирование задачи
- •Программа по алгоритму цикла с предусловием
- •Программа по алгоритму цикла с постусловием
- •Программа по алгоритму цикла с параметром
- •Заключение
- •Вопросы для контроля
Программирование задачи
Идентификация всех переменных алгоритмов: вещественной переменной про, целой i и двух вещественных массивов исходного С(7) и расчетного П(7). представлена в табл. 5.3.
Таблица 5.3
Обозначение в алгоритме |
c1 |
c2 |
... |
c6 |
c7 |
про |
пi |
ci |
i |
Обозначение в программе |
c[0] |
c[1] |
... |
c[5] |
c[6] |
pro |
p[i] |
c[i] |
i |
В соответствии с таблицей расположение элементов исходного массива в оперативной памяти представлено схемой:
|
c[0] |
c[1] |
c[2] |
c[3] |
c[4] |
c[5] |
c[6] |
|
|
c1 |
c2 |
c3 |
c4 |
c5 |
c6 |
c7 |
|
|
4 байта |
4 байта |
4 байта |
4 байта |
4 байта |
4 байта |
4 байта |
|
Для расчетного массива П(7) распределение оперативной памяти аналогично представленному для массива С.
Возможные варианты программ решения задачи с каждым из рассмотренных операторов цикла представлены ниже.
-
Внимание! Формирование начального значения параметра и логического выражения операторов цикла должно учитывать уменьшение индексов в Си/Си++ на единицу по отношению к указанным в алгоритме.
Программа по алгоритму цикла с предусловием
Вариант программы:
/*Задача 5.2. Программа цикла с предусловием. * /
/* Составил студент гр. А033 Трубников П.А.*/
#include <stdio.h> /* директивы */
#include <math.h> /* препроцессора */
main() /* заголовок основной функции */
{
float c[7], p[7], pro; /* описание вещественных массивов*/
/* и переменной */
int i; /* описание целой переменной */
scanf("%3f%4f%4f%4f%4f%4f%4f%4f",&pro,&c[0],&c[1],
&c[2],&c[3],&c[4],&c[5],&c[6]); /* ввод переменных */
printf(" pro=%8.2f\n\n", pro); /* вывод переменной pro */
i=0; /* формирование начального значения параметра цикла */
while( i < 7 ) /* заголовок цикла */
{
p[ i ]=(c[ i ]*pro)/100.;/*расчет текущего значения функции */
printf(" %8.2f %7.2f\n", c[ i ], p[ i ] );
i=i+1; /* закон изменения параметра цикла */
}
}
25.492.503.948.738.892.320.250. – значения вводимых данных.
Результаты решения представлены в приложении 5.4.
Программа по алгоритму цикла с постусловием
Вариант программы имеет вид:
/*Задача 5.2. Программа цикла с постусловием. * /
/* Составил студент гр. А033 Трубников П.А */
#include <stdio.h> /* директивы */
#include <math.h> /* препроцессора */
main() /* заголовок основной функции */
{
float c[7], p[7], pro; /* описание вещественных массивов*/
/* и переменной */
int i; /* описание целой переменной */
scanf("%3f%4f%4f%4f%4f%4f%4f%4f",&pro,&c[0],&c[1],
&c[2],&c[3],&c[4],&c[5],&c[6]); /* ввод переменных */
printf(" pro=%8.2f\n\n", pro); /* вывод переменной pro */
i=0; /*формирование начального значения параметра цикла */
do /* заголовок цикла */
{
p[ i ]=(c[ i ]*pro)/100.;/*расчет текущего значения функции*/
printf(" %8.2f %7.2f\n", c[ i ], p[ i ] );
i=i+1; /* закон изменения параметра цикла */
}while( i < 7 ); /* условие повторения цикла */
}
25.492.503.948.738.892.320.250. – значения вводимых данных.
Результаты решения представлены в приложении 5.5.