Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_ДЗ1.doc
Скачиваний:
6
Добавлен:
26.08.2019
Размер:
162.82 Кб
Скачать

Федеральное агентство по образованию

ГОУ ВПО «Уральский государственный технический университет - УПИ»

Радиотехнический институт – РТФ

Программирование на языке си

Методические указания к выполнению домашней работы №1

по дисциплинам «Информатика»,

для студентов всех форм и технологий обучения

радиотехнического факультета

Екатеринбург 2006 г

УДК 004.43

Составители О. Ю. Иванов, Саблина Н.Г.

Научный редактор доц., канд. техн. наук Г.А. Самусевич

ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ СИ: Методические указания к выполнению домашней работы 1 по дисциплине «Информатика» для студентов всех форм и технологий обучения радиотехнического факультета / Н.Г. Саблина. Екатеринбург: УГТУ‑УПИ, 2006. 19 с.

Методические указания включают краткое изложение теоретического материала по темам «Линейные алгоритмы» и «Разветвляющиеся алгоритмы», примеры решения задач по указанным темам, варианты индивидуальных заданий для самостоятельного решения, рекомендации по их выполнению и список литературы.

Библиогр.: 4 назв. Табл. 3.

Подготовлено кафедрами «Теоретические основы радиотехники», «Радиоэлектронных и телекоммуникационных систем.

© Уральский государственный

технический университет - УПИ, 2006

1. Линейные алгоритмы. Арифметика действительных чисел. Вычисления по формулам

Линейным или простейшим называют такой алгоритм, в котором вычисления по формулам выполняются в линейной последовательности, т.е. друг за другом выполняются все операторы программы от первого до последнего.

1.1. Программирование линейных алгоритмов

Линейные алгоритмы рассмотрим на простейшем примере.

Пример 1.1. Площадь и периметр прямоугольника

Вычислить площадь и периметр прямоугольника, если известны длины его сторон.

Работу над программой будем осуществлять в соответствии с этапами, рассмотренными в главе 1 [1].

Постановка задачи

Исходными данными для этой задачи являются стороны прямоугольника: длина a и ширина b. Значения a и b – действительные числа, вводятся с клавиатуры.

Выходные данные – площадь S и периметр P заданного прямоугольника. Значения S и P - также действительные числа, выводятся на экран монитора.

Метод решения

Вычисление площади и периметра прямоугольника производится по известным формулам:

S= a b ; P=2(a+b).

Блок-схема алгоритма

Текст программы

#include <stdio.h>

/*----------------------------------------------

вычисление площади и периметра прямоугольника

----------------------------------------------*/

main()

{

float a,b,S,P;

// заставка

printf(" \nПрограмма вычисления площади прямоугольника

\n размером axb \n Автор: студент гр. РД-15061 Иванов И.И.

2006 г.");

// ввод исходных данных

printf(" \n‚Введите ширину a=");

scanf("%f", &a);

printf(" \n‚Введите длину b=");

scanf("%f", &b);

// вычисляемая часть

S=a*b;

P=2*(a+b);

// Вывод результатов

printf("\n Площадь прямоугольника S=%f

\n периметр. P=%f ", S,P);

}

1.2. Вычисления по формулам

Вычисление по формулам – простейший вид алгоритмических действий. Вычисления организуются с помощью математических операций:

+ - сложение; - - вычитание;

* - умножение; / - деление;

% – остаток от деления,

++ увеличение на единицу (increment);

-- уменьшение на единицу (decrement)..

При записи действительных чисел десятичная часть отделяется точкой. Результат вычисления математического выражения присваивается некоторой переменной с помощью знака присваивания (=), математические действия выполняются в порядке убывания их приоритета, а также порядок действий регулируется круглыми скобками. Например, алгебраическое выражение вида

в виде оператора программы будет выглядеть следующим образом:

x=(102.5*(a - 5.74) + b*(23.6 + 1.4)) / (5.23 - 3.6 + 2);

В языке С допускается многократное присваивание: а=b=с=х*у, которое выполняется справа налево. Сначала вычисляется значение х*у, затем это значение присваивается с, потом b, и лишь затем а.

Кроме того, в языке С имеются библиотеки математических функций, описанных в заголовочных файлах math.h и stdlib.h (см. [1, табл. ***]).

Примеры написания операторов, производящих вычисления с использованием встроенных функций:

Математическая запись

Оператор Паскаль-программы

a=2*cos(x-M_PI/6) /(0.5 + sin(y))

a=log(fabs((y-sqrt (fabs(x)))*(x-y/ (z + x*x/4)));

2. Разветвляющиеся алгоритмы

Часто встречаются формулы, в которых значение некоторой величины может определяться одним из нескольких различных выражений в зависимости от выполнения тех или иных условий. При программировании таких вычислений используются разветвляющиеся алгоритмы. В качестве примера разветвляющегося алгоритма рассмотрим следующую задачу.

2.1. Использование оператора if Пример 2.1. Вычислить значение функции 1 (полный оператор if)

Постановка задачи

Исходными данными для этой задачи являются значения переменной x; x- действительное число. Значение х вводится с клавиатуры.

Выходные данные - значение функции F. F – действительное число. Значение функции выводится на экран монитора.

Метод решения

В соответствии с условием задачи вначале анализируется значение переменной х. Затем в зависимости от этого значения вычисляется значение функции F по одной из формул.

Блок-схема алгоритма

Текст программы

/*----------------------------------------------

Вычисление значения функции. Условный оператор.

----------------------------------------------*/

#include <stdio.h>

#include <math.h>

main()

{

float x, F;

printf("\nВычисление значения функции");

//ввод исходных данных

printf("\nВведите значение аргумента x=");

scanf("%f",&x);

//вычисления

if (x>0) F=cos(3*x)+sin(5*x);

else F=sin(2*x);

//вывод результата

printf("\nЗначение функции F=%f", F);

}

2.2. Сокращенный вариант оператора if

Существует два варианта условного оператора – полный и сокращенный. В предыдущем примере мы использовали полный оператор if. Иногда в ветви else не нужно выполнять никаких действий, то есть действия выполняются только если условие верно. Тогда используется сокращенный вариант оператора if. Рассмотрим использование сокращенного оператора на следующем примере.