Домашнее задание № 1
по курсу «Информатика» для студентов дневного и вечернего отделений инженерно-экономического факультета и факультета ММТ
Задание:
Составить программу и блок-схему для решения нижеследующих задач. Решение каждой задачи сопроводить пояснительной запиской с объяснением используемых в задаче переменных, операторов, функций и прочих конструкций языка Си.
Задача 1.
Даны x, y, z. Вычислить a, b, используя приведенные ниже формулы. Получить max(a, b).
-
№ вар-та
Исходные данные
1
a=(pow(fabs(x-1),1./2)-pow(fabs(y),1./3))/(1+pow(x,2)/2+pow(y,2)/4);
Решение:
a) Программа.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
float x,y,z,a,b,max;
printf("\ninput x,y,z: ");
scanf("%f%f%f",&x,&y,&z);
a=(pow(fabs(x-1),1./2)-pow(fabs(y),1./3))/(1+pow(x,2)/2+pow(y,2)/4);
b=x*(atan(z)+exp(-(x+3)));
if(a==b)printf("\nmax=a=b=%f",a);
else {if(a>b) max=a; else max=b;
printf("\nmax=%f\n",max);}
system("PAUSE");
return 1;
}
Результат:
input x,y,z: 1,2,3
max=0.018316
Для продолжения нажмите любую клавишу . . .
b) Блок-схема.
+ -
+ -
с) Пояснительная записка.
Программа начинается с директив препроцессора, начинающихся с символа #, которые дают указание препроцессору подключить к программе заголовочные файлы с описанием тех или иных библиотечных функций. В данном случае подключается заголовочный файл stdio.h с описанием функций ввода-вывода, файл math.h для библиотечных математических функций.
Программа содержит основную функцию main(), с которой и начинается выполнение программы. Поскольку функция main() возвращает целое число, она объявляется с ключевым словом int. Тело функции main() представляет собой блок и ограничено фигурными скобками.
В теле функции main() объявляются вещественные переменные х, у, z, a, b, max.
х, у, z - исходные данные; a, b - расчетные переменные для вычисления по формулам; max для хранения максимального значения из a и b.
Далее содержится вызов библиотечной функции printf(), которая выводит на экран текст «Введите х, у, z». Предварительно происходит перевод строки, который задается в функции printf() управляющими символами “\n”.
Ввод числовых значений х, у, z происходит со стандартного устройства ввода (клавиатуры) по адресам: &х, &у, &z соответственно. Осуществляет это библиотечная функция scanf(), в которой используется спецификация формата ввода %f, так как х, у, z - вещественные числа.
Далее вычисляются значения а и b с помощью арифметических операций и библиотечных математических функций.
Использование конструкции вложенных условных операторов:
if (выражение) оператор 1; else
{ if (выражение) оператор 2; else оператор 3;}
позволяет выбрать максимальное из значений а и b, которое затем присваивается переменной max.
Использование функции printf() дает возможность вывести на стандартное устройство вывода (монитор) числовое значение переменной max. Здесь также используется спецификация вывода %f, поскольку max - вещественное число.
Далее функция main() возвращает значение 1, что говорит системе о правильности выполнения программы, после чего тело функции main() закрывается фигурной скобкой. На этом программа заканчивается.