Составление программ решения задачи
Выполним идентификацию всех переменных алгоритмов: вещественной переменной про, целой i и двух вещественных массивов:
· исходного С(7);
· расчетного П(7).
Идентификация переменных имеет вид табл. 5.3.
Таблица 5.3
Обозначение в алгоритме | c1 | c2 | c3 | ... | c6 | c7 | про | пi | ci | i |
Обозначение в программе | c[0] | c[1] | c[2] | ... | 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) распределение оперативной памяти аналогично представленному для массива С.
Выполним программы с различными операторами цикла.
ü Внимание! Формирование начального значения параметра и логического выражения операторов цикла должно учитывать уменьшение индексов в Си на единицу по отношению к указанным в алгоритме.
Программа по алгоритму цикла с предусловием
Вариант программы:
/* Программа с использованием цикла с предусловием */
#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]); /* ввод переменных */
fprintf(stdprn," pro=%8.2f\n\n", pro); /* вывод переменной pro */
i=0; /* формирование начального значения параметра цикла */
while( i < 7 ) /* заголовок цикла */
{
p[ i ] = ( c[ i ] * pro ) / 100.; /* вычисление текущего значения функции */
fprintf(stdprn," %8.2f %7.2f\n", c[ i ], p[ i ] );
i=i+1; /* закон изменения параметра цикла */
}
}
25.492.503.948.738.892.320.250. – значения вводимых переменных.
Программа по алгоритму цикла с постусловием
Вариант программы имеет вид
/* Программа с использованием цикла с постусловием */
#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]); /* ввод переменных */
fprintf(stdprn," pro=%8.2f\n\n", pro); /* вывод переменной pro */
i=0; /* формирование начального значения параметра цикла */
do /* заголовок цикла */
{
p[ i ] = ( c[ i ] * pro ) / 100.; /* вычисление текущего значения функции */
fprintf(stdprn," %8.2f %7.2f\n", c[ i ], p[ i ] );
i=i+1; /* закон изменения параметра цикла */
}while( i < 7 ); /* условие повторения цикла */
}
25.492.503.948.738.892.320.250. -значения вводимых переменных.
Программа по алгоритму цикла с параметром
Вариант программы имеет вид
/* Программа с использованием цикла с параметром */
#include <stdio.h> /* директивы */
#include <math.h> /* препроцессора */
#include <stdlib.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]); /* ввод переменных */
fprintf(stdprn," pro=%8.2f\n\n", pro); /* вывод переменной pro */
for( i=0 ; i < 7 ; i=i+1 ) /* заголовок цикла */
{
p[ i ] = ( c[ i ] * pro ) / 100.; /* вычисление текущего значения функции */
fprintf(stdprn," %8.2f %7.2f\n", c[ i ], p[ i ] );
}
}
25.492.503.948.738.892.320.250. - значения вводимых переменных.