Задание
1.Напишите программу, реализующую Вашу задачу. В программе обязательно должны
присутствовать:
- цикл for;
- совмещение операции присваивания с бинарными операциями (например, a+=b);
- операторы scanf и printf .
2.Копию файла задачи название.срр перенесите в файл название.txt и разместите на облачном диске (см. указания на странице Работа с диском Google -не забудьте сделать общий доступ!), затем разместите ссылку на него в комментариях на странице Консультации: задачи по теме "Циклы"
3.Ждите моего ответа под Вашим комментарием
Задача предполагает обязательную распечатку таблицы и расчет суммы или
числа слагаемых (всех имеющихся или удовлетворяющих некоторому условию).
Рассмотрим задачу
Написать программу, которая
распечатывает таблицу стоимости почтовой пересылки для значений веса посылки от Рn до Рk кг с шагом 0.5 кг, если пересылка 1 кг стоит 53 руб. Подсчитать количество строк в таблице.
План программы:
1.Ввести с клавиатуры значения Рn и Рk.
2. Напечатать Заголовок таблицы.
3. Написать цикл, на каждом шаге
которого
§
вычисляется номер строки i;
§
вычисляется текущее значение веса P;
§
вычисляется стоимость пересылки этого веса St;
§
печатается номер строки, вес и стоимость.
4. Закончить печать таблицы
5. Вывести число строк таблицы
Программа будет выглядеть примерно так (см. пояснения после
текста программы и комментарии после // в строках):
#include
<stdio.h> // подключаем
библиотеку стандартного ввода-вывода
void main()
{
float pn,pk,P,St;
int i=0;
printf("pn,pk="); //вывод сопровождающего текста
scanf("%f%f",&pn,&pk); //ввод с клавиатуры
printf("
N=%.1f, K=%.1f \n",pn,pk);
printf("----------------------------
\n"); // печать
заголовка таблицы
printf(" | i
| P (kg) | St
(rub) |\n");
printf("----------------------------
\n");
for(P=pn;P<=pk;P+=0.5, i++)
//начало цикла: Р изменяется от нач до кон.
{ // значения
St=P*53;
printf(" | %2d | %6.3f
| %6.3f |\n",i,P,St);
}
//конец цикла
printf("----------------------------
\n");
printf(" chislo strok i=%d
\n",i);
}
Цикл
повторяет выполнение операторов, стоящих в теле цикла, пока условие внутри
скобок в строке for
верно. Тело цикла составляет один оператор после for() или блок в скобках { }, записанный
сразу после for.
Операторы
ввода (scanf) и вывода (printf)
содержат форматы, которые показывают, как вводить (выводить) данную переменную.
Например, формат %d
служит для вывода целых данных. %2d показывает, что на
данное отводится 2 позиции. %6.3f
показывает, что на выводимое вещественное данное отводится всего 6 позиций, из
них 3 –после десятичной точки. Чтобы таблица была прямой, нужно записать такой
формат, чтобы в него вмещалось самое длинное выводимое число.
Если нужно считать не полное число вычисляемых в цикле величин, а только удовлетворяющие определенному условию, воспользуйтесь оператором if^
if (P>5 && P<10) k++;
- в данном случае k- число значений Р в интервале 5<P<10.
Комментариев нет:
Отправить комментарий