среда, 18 февраля 2015 г.

Задача № 1. Консольное приложение в СП Visual C++


Задание

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.

Комментариев нет:

Отправить комментарий