Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Гордеев А.В. Операционные системы. Учебник для вузов. СПб.: Питер. 2005 - 416с.

ВЫБОР ВАРИАНТА ЗАДАНИЯ

 

Варианты заданий представлены в таблице и соответствуют последней цифре в зачетной книжке студента.

 

Цифра                      
№ варианта                    

ЗАДАНИЕ

Составить программу и блок-схему для решения нижеследующих задач. Решение каждой задачи сопроводить пояснительной запиской с описанием используемых в задаче конструкций языка Си.

Задача 1.

N   Задание
  Вычислить корни квадратного уравнения .  
  Найти квадрат наибольшего из двух чисел а и b и отпечатать признак N=1, если наибольшим является а, и признак N=2 – в противном случае.
  Определить, попадает ли точка с координатами x, y в круг радиуса r с центром в начале координат. Вывести признак N=1, если точка находится внутри круга, и признак N=0, если точка находится вне круга.
  Определить, является ли значение целочисленной переменной х кратным трем. Если является, то вывести на печать значение х, в противном случае напечатать НЕТ.
  Определить полярные координаты точки, заданной координатами х, у в прямоугольных координатах по формулам: . При вычислении угла необходимо учесть, что значение х может быть равно нулю.
  Вычислить площадь треугольника со сторонами a, b, c по формуле Герона, проверив условие корректности исходных данных (длины всех сторон положительны, сумма длин любых двух сторон больше длины третьей).
  Определить, в какой координатной четверти находится точка, заданная координатами (х, у).
  Определить, является ли значение целочисленной переменной х четным. Если является, то вывести на печать значение х, в противном случае напечатать НЕТ.
  Вычислить значение функции где y=sin(px), где х-любое целое число. При вычислении необходимо учесть, что у может быть равен нулю.
  Даны три действительных числа. Возвести в квадрат те из них, значения которых неотрицательны.

 

Задача 2.

N Массив Задание Условия и ограничения
  Х[10] Вычислить сумму и количество положительных элементов массива Х   Xi - действительные числа
  А[12] Вычислить среднее арифме­тическое значение положительных элементов массива А   Аi - действительные числа
  Х[8] Найти сумму целых положительных чисел, кратных 4. Xi - целые числа
  В[10] Определить максимальный элемент массива В и его порядковый номер B - действительные числа
  С[11] Вычислить минимальный элемент массива С и его порядковый номер C -действительные числа
  D[8] Найти максимальный и минимальный элементы массива D и поменять их местами D - целые числа  
  Y[12] Вычислить среднее геомет­рическое положительных элементов массива Y Yi - целые числа
  Z[13] Найти сумму четных чисел, меньших 10.     Z - натуральные числа
  N[15] Определить сумму элементов массива N, кратных трем   Ni - натуральные числа
  A[N] Найти среднее геометрическое элементов массива А   Ai > 0; N=10

 

Задача 3.

 

Найти среднее арифметическое значений функции f(x) в точках а, b, (a+b)/2, используя обращение к функции.

 

N f(x) [a,b]
  a=0,1 b=0,8
  a=0,1 b=0,8
    a=0,1 b=1,0
    a=0,1 b=0,8
  a=0,1 b=0,8
  a=0,1 b=1,0
  a=2,1 b=3,1
    a=0,8 b=1,8
    a=1 b=3
  a=3 b=5

 

 

ПРИМЕР ВЫПОЛНЕНИЯ ЗАДАНИЯ 1

 

Задание:

Составить программу и блок-схему для решения нижеследующих задач. Решение каждой задачи сопроводить пояснительной запиской с описанием используемых в задаче конструкций языка Си.

Задача 1.

Даны вещественные x, y, z. Вычислить min (x+y+z, x*y*z).

Решение.

A) Программа.

/* Задача 1*/

 

#include <stdio.h>

 

void main()

{ float x, y, z, p, q, min;

 

printf(” Введите x, y, z ”);

 

scanf(”%f %f %f”, &x, &y, &z);

 

p = x+y+z; q = x*y*z;

 

if(p<q) min=p; else min=q;

 

printf(” min = %f”, min);

 

}

 

B) Блок-схема.

 

C) Пояснительная записка.

Программа начинается с комментария, который заключается между символами /* и */.

Далее идут директивы препроцессора, начинающиеся с символа #, которые дают указание препроцессору подключить к программе заголовочные файлы с описанием тех или иных библиотечных функций. В данном случае подключается заголовочный файл stdio.h с описанием функций ввода-вывода.

Программа содержит обязательную функцию main(), с которой и начинается выполнение программы. Поскольку функция main() не возвращает никаких значений, она объявляется с ключевым словом void. Тело функции main() представляет собой блок и ограничено фигурными скобками.

В теле функции main() объявляются вещественные переменные x, y, z, p, q, min.

x, y, z –исходные данные;

p для хранения суммы x, y, z;

q для хранения произведения x, y, z;

min для хранения минимального из p и q значения.

Далее содержится вызов библиотечной функции printf(), которая выводит на экран текст «Введите x, y, z». Предварительно происходит перевод строки, который задается в функции printf() управляющими символами ‘ ’.

Ввод числовых значений x, y, z происходит со стандартного устройства ввода (клавиатуры) по адресам: &x, &y, &z соответственно. Осуществляет это библиотечная функция scanf(), в которой используется спецификация формата ввода %f, так как x, y, z – вещественные числа.

Далее вычисляются значения p и q с помощью арифметических операций сложения, умножения и присваивания.

Использование условного оператора:

if (выражение) оператор 1; else оператор 2;

позволяет выбрать минимальное из значений p и q, которое затем присваивается переменной min. Выражение сравнения в условном операторе имеет вид: (p < q). Операторами 1 и 2 являются присваивания: min=p и min=q. Если p < q, то min=p, в противном случае min=q.

Использование вышеуказанной библиотечной функции printf() дает возможность вывести на стандартное устройство вывода (монитор) числовое значение переменной min в сопровождении текста “min=”. Здесь также используется спецификация вывода %f, поскольку min – вещественное число.

Далее, как уже было замечено выше, тело функции main() закрывается фигурной скобкой. На этом программа заканчивается.

Задача 2.

В массиве из 10 вещественных чисел найти среднее значение элементов, преобразовать исходный массив, вычитая из каждого элемента среднее значение.

Решение.

A) Программа.

/* Задача 2 */

 

#include <stdio.h>

 

void main()

{ int i; float x[10], s=0;

 

/*Ввод элементов массива и нахождение их суммы */

for(i = 0; i < 10; i++)

{

printf(” x[%d]=”, i+1);

scanf(”%f”, &x[i]);

s+=x[i]; }

/* Нахождение среднего значения */

s/ = 10;

/* Преобразование и вывод исходного массива */

for (i = 0; i < 10; i++)

{ x[i] - = s;

printf(” x[%d]=%f”, i+1, x[i]);

}

}

 

B) Блок-схема.

 

 

 

C) Пояснительная записка.

Программа начинается с комментария, который заключается между символами /* и */.

Далее идет директива препроцессора, начинающиеся с символа #, которая дает указание препроцессору подключить к программе заголовочный файл stdio.h с описанием функций ввода-вывода.

Программа содержит обязательную функцию main(). Поскольку функция main() не возвращает никаких значений, она объявляется с ключевым словом void. Тело функции main() представляет собой блок и ограничено фигурными скобками.

В теле функции main() объявляются:

целая переменная i – необходима для параметра цикла for;

вещественные переменные: x для обозначения массива из 10 элементов, s – для накопления суммы элементов массива и расчета среднего значения, которая предварительно инициализируется нулем;

Далее открывается цикл for, в котором содержится вызов функции printf(), которая выводит на экран подсказку для ввода текущего элемента массива, вызов функции scanf(), которая вводит текущий элемент массива с клавиатуры и накопление суммы элементов массива в переменной s.

Следующий оператор рассчитывает среднее значение элементов массива.

Далее снова открывается цикл for, в котором преобразуются значения элементов массива, путем вычитания из каждого элемента среднего значения. В этом же цикле организуется вывод на экран преобразованных значений элементов массива.

Тела циклов for в обоих случаях представляют собой блоки, которые заключаются в фигурные скобки.

Далее, как уже было замечено выше, тело функции main() закрывается фигурной скобкой. На этом программа заканчивается.

Задача 3.

Найти среднее арифметическое значение функции в точках разбиения отрезка [а, b] с шагом h=0.1, используя обращение к функции .

 

Решение.

A) Программа.

 

/* Задача 3 */

#include <stdio.h>

#include <math.h>

 

/* Определение функции f(x) */

float f (float x) {

return atan(x)+pow(log(x*x), 2);

}

 

/* Главная функция main() */

void main()

{

int n;

float x, a, b, h = 0.1, s = 0;

printf(” Введите a, b ”);

scanf(” %f %f”, &a, &b);

n=(b-a)/h+1;

 

for(x = a; x <= b; x += h)

/* Обращение к функции f(x) */

s += f(x);

/* Вычисление среднеарифметического значения */

s/ =n;

printf(“среднеарифметическое значение = %f”, s);

}

 

B) Блок-схема.

Блок-схема состоит из двух частей, поскольку программа состоит из двух функций и каждая функция изображается отдельной блок-схемой.

 

 

C) Пояснительная записка.

Программа начинается с комментария, который заключается между символами /* и */.

Далее идут директивы препроцессора, которые дают указание препроцессору подключить к программе заголовочный файл stdio.h с описанием функций ввода-вывода и заголовочный файл math.h с описанием математических функций.

Программа состоит из двух функций: пользовательской функции f(x) и обязательной функции main(). Функция main() не возвращает никаких значений и поэтому она объявляется с ключевым словом void. В отличие от функции main(), функция f(x) возвращает вещественное значение f и объявляется с ключевым словом float. Тела функций являются блоками и поэтому ограничены фигурными скобками.

В определении функции f участвует вещественная переменная x, которая является формальным параметром этой функции. Далее определяется значение функции f(x) в зависимости от параметра x. Оператор return используется для возврата числового значения f(x) в вызывающую функцию.

В теле функции main() объявляются:

целая переменная n – необходима для подсчета количества точек разбиения отрезка [a,b];

вещественные переменные: x для обозначения числового значения точки разбиения, a, b – для обозначения границ отрезка [a,b], h – для обозначения шага разбиения, s – для накопления суммы значений функции в точках разбиения и расчета среднеарифметического значения, которая предварительно инициализируется нулем.

Далее вводятся числовые значения a, b и рассчитывается количество точек разбиения отрезка [a,b].

Затем открывается цикл for, параметром цикла которого является переменная x, в цикле содержится вызов функции f(x) для расчета текущего значения f(x). После расчета числовое значение f(x) передается в вызывающую функцию main(). В этом же цикле происходит суммирование значений функции f(x) на отрезке [a,b].

На следующем этапе рассчитывается среднее арифметическое значение функции f(x) на отрезке [a,b] и выводится при помощи функции printf() на стандартное устройство вывода. Далее, тело функции main() закрывается фигурной скобкой. На этом программа заканчивается.



ЛИТЕРАТУРА.

ОСНОВНАЯ:

1. Информатика. Базовый курс. 2-е издание / Под ред. С. В. Симоновича. СПб.: Питер, 2005.- 640 с.: ил.

2. Артамонов, Б.Н. и др. Основы современных компьютерных технологий. Учебное пособие. /Под ред. проф. А. Д. Хомоненко. - СПб: Корона-принт, 2002 - 448с.

ДОПОЛНИТЕЛЬНАЯ:

1. Вейсскопф Д. Excel 2000. Базовый курс (русифицированная версия) Пер. с англ. СПб.: ВЕК+, 2000. – 400с.

2. Виктор Пасько. Microsoft Office 2000 (русифицированная версия). – Киев.: Издательская группа BHV, 2000. –784 с.

Гордеев А.В. Операционные системы. Учебник для вузов. СПб.: Питер. 2005 - 416с.

4. Информационные системы / Петров В. Н. – СПб.: Питер, 2002. – 688 с.: ил.

5. Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем. Учебник. М.: ФОРУМ, 2006. - 512с.

6. Максимов Н.В., Попов И.И. Компьютерные сети. Учебное пособие. М.: ИНФРА-М, 2005. – 336 с.

7. Пауэлл Томас А. Web – дизайн: Пер. с англ. – СПб.: БХВ – Петербург, 2002 – 1024 с.: ил.

8. Плис А. И., Сливина Н. А. MathCAD. Математический практикум для инженеров и экономистов: Учебное пособие. – 2-е изд., перераб. и доп. – М.: Финансы и статистика, 2003. – 656 с.: ил.

9. Попов В. Практикум по Internet – технологиям: Учебный курс. – СПб.: Питер, 2002. – 480 с.: ил.

10. Семененко М.Г. Математическое моделирование в MathCAD.- М.: Альтекс-А, 2003. – 208с.

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...