Реализовать меню и вычислить функцию - C (СИ)
Формулировка задачи:
Написать программу:
1) выводит на экран меню
1.введение данных
2.обчислення функции
3.завершення
2) Если выбран пункт 1, необходимо обеспечить ввод трьох величин: начального значения, конечного значения и шага изменения аргумента Х.
3) Если выбран пункт 2, необходимо провести вычисления функции у=х^3+2x для всех значений аргумента и вывести полученные результаты в виде таблицы
4) Если выбран пункт 3, необходимо сообщить пользователю о завершении программы и осуществить выход.
Текст на С.
Решение задачи: «Реализовать меню и вычислить функцию»
textual
Листинг программы
/***********************
* Программа с do/while
***********************/
#include<stdio.h>
long long int formula(int x);
int main(void) {
long long int y; /* перименная для Y */
int first, /* начальное значение */
last, /* конечное ...... */
step, /* шаг */
n, /* число промежутков */
i, /* подсчот .......... */
flag = 0; /* флаг если НУЛЬ то данные не обработаны */
char choice, /* Выбор */
trash; /* очищение stream'а */
do {
puts("1. введение данных");
puts("2. обчислення функции");
puts("3. заверення");
choice = getchar();
switch(choice) {
case '1': puts(" ввод трех велечин");
printf(" начальное значение: ");
scanf("%d",&first);
printf(" конечное значение: ");
scanf("%d",&last);
printf(" шаг измерения аргумента X: ");
scanf("%d",&step);
flag = 1;
break;
case '2': if (flag) {
printf("\nТаблица\n%lld\n",formula(first));
if(last>first) {
if((last-first)>step) {
n = (last-first) /step;
for(i=1 ; i<=n ; i++)
printf("%lld\n",formula(first+step*i)); }}
else if(last<first) {
if((first-last)>step) {
n = (first-last) /step;
for(i=1 ; i<=n ; i++)
printf("%lld\n",formula(first-step*i)); }}
(last-first)%step ? printf("%lld\n",formula(last)) : puts("") ; }
break; }
while(getchar()!='\n');
puts("");
} while(choice!='3');
return 0; }
long long int formula(int x) {
long long int result;
result = (x*x*x + x*(long long int)2);
return result; }
Объяснение кода листинга программы
В этом коде используется цикл do/while для реализации меню. Пользователю предлагается выбрать один из трех пунктов меню (ввод данных, вычисление функции, завершение программы), ввод осуществляется с клавиатуры. Если пользователь вводит '1', ему предлагается ввести начальное, конечное значение и шаг для функции, после чего значения сохраняются в переменных и флаг меняется на 1. Если пользователь вводит '2', выполняется вычисление функции, и результат выводится на экран. Если пользователь вводит '3', программа завершается. Список переменных и их значений:
- y - не используется
- first, last, step, n, i - используются для хранения значений, введенных пользователем
- flag - используется для контроля, были ли введены данные
- choice, trash - используются для ввода пользователем выбора и очистки потока ввода
- result - используется для хранения результата вычисления функции