End; // конец группы операторов, выполняемых в цикле
writeln('K = ',K-1); // вывод К
Поскольку в подсчёте суммы ряда слагаемое является вещественной переменной, переменная Sum должна быть объявлена как вещественная. В операции сравнения, используемой в условии, должны использоваться переменные одного типа, следовательно, переменная A также должна быть объявлена как вещественная. По условию задачи переменная K должна быть объявлена как целая. Поэтому в разделе объявления переменных программы, располагающемся перед началом программы, должна содержаться следующая запись:
Var // объявление переменных
K:Integer;
A,Sum:Double;
Реализация программы в среде Delphi выглядит следующим образом:
program prog_lr7;
// указание компилятору создать консольное приложение
{$APPTYPE CONSOLE}
Var // объявление переменных
A,K:Integer;
Sum:Double;
Begin // начало программы
// сообщение пользователю о цели программы
writeln('Programma dlya opredeleniya max znacheniya K, pri kotorom summa ryada 1+1/2+...+1/K menshe A.');
// сообщение пользователю о необходимости ввода переменной
write('Vvedite A: ');
Readln(A); // ввод переменной
Sum:=0; // установка суммы в ноль
K:=0; // установка К в ноль
while Sum<A do // заголовок цикла с условием
Begin // начало группы операторов, выполняемых в цикле
K:=K+1; // увеличение К на единицу
Sum:=Sum+1/K; // увеличение суммы на одно слагаемое
End; // конец группы операторов, выполняемых в цикле
writeln('K = ',K-1); // вывод К
Readln; // задержка закрытия консольного окна
End. // конец программы
Язык программирования C
Оператору цикла с параметрами в языке C соответствует последовательность:
While(условие)
{
группа операторов;
}
Руководствуясь блок-схемой, записываем алгоритм на языке C:
scanf("%lf",&A); // ввод числа
Sum = 0.0; // установка суммы в ноль
K = 0.0; // установка К в ноль
while(Sum < A) // заголовок цикла c условием
{ // начало группы операторов, выполняемых в цикле
K++; // увеличения K на единицу
Sum = Sum+1/K; // увеличение суммы на одно слагаемое
} // конец группы операторов, выполняемых в цикле
printf("K = %lf\n",K-1); // вывод K
Поскольку в подсчёте суммы ряда слагаемое является вещественной переменной, переменная Sum должна быть объявлена как вещественная. В операции сравнения, используемой в условии, должны использоваться переменные одного типа, следовательно, переменная A также должна быть объявлена как вещественная. По условию задачи переменная K должна быть объявлена как целая. Однако чтобы не преобразовывать K к вещественному типу для подсчёта слагаемого, его также можно объявить как вещественное. Поэтому в разделе объявления переменных программы, располагающемся перед началом программы, должна содержаться следующая запись:
// объявление переменных
double Sum,K,A;
Реализация программы в среде С Builder выглядит следующим образом:
#pragma hdrstop
// подключение модуля, в котором определены функции ввода и вывода
#include <stdio.h>
// подключение модуля, в котором определены функции max и min
#include <stdlib.h>
#pragma argsused
int main(int argc, char* argv[]) {
// объявление переменных
double Sum,K,A;
// сообщение пользователю о цели программы
printf("Programma dlya opredeleniya max znacheniya K, pri kotorom summa ryada 1+1/2+...+1/K menshe A.\n");
// сообщение пользователю о необходимости ввода переменной
printf("Vvedite A: ");
scanf("%lf",&A); // ввод числа
Sum = 0.0; // установка суммы в ноль
K = 0.0; // установка К в ноль
while(Sum < A) // заголовок цикла c условием
{ // начало группы операторов, выполняемых в цикле
K++; // увеличения K на единицу
Sum = Sum+1/K; // увеличение суммы на одно слагаемое
} // конец группы операторов, выполняемых в цикле
printf("K = %lf\n",K-1); // вывод K
scanf("%lf",&A); // задержка закрытия консольного окна
return 0;
}
Этап 5. Тестирование и отладка. Проверяем работу программы. Составляем тесты и запускаем по ним программу.
В формализованное решение задачи подставляем А и подсчитываем сумму, увеличивая каждый раз K на единицу.
Составляем три теста:
1) А = 2; K = 3;
2) А = 5; K = 82;
3) А = 3.3; K = 14.
Запускаем программу и подставляем тестовые переменные:
1)
2)
3)
Результаты работы программы совпадают с ожидаемыми результатами — программа работает правильно.
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|