Гордеев А.В. Операционные системы. Учебник для вузов. СПб.: Питер. 2005 - 416с.
ВЫБОР ВАРИАНТА ЗАДАНИЯ
Варианты заданий представлены в таблице и соответствуют последней цифре в зачетной книжке студента.
ЗАДАНИЕ Составить программу и блок-схему для решения нижеследующих задач. Решение каждой задачи сопроводить пояснительной запиской с описанием используемых в задаче конструкций языка Си. Задача 1.
Задача 2.
Задача 3.
Найти среднее арифметическое значений функции f(x) в точках а, b, (a+b)/2, используя обращение к функции.
ПРИМЕР ВЫПОЛНЕНИЯ ЗАДАНИЯ 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 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|