Выполним идентификацию всех переменных алгоритмов: вещественной переменной про, целой 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. - значения вводимых переменных.