Составление программ решения задачи

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