Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Концепция решения информационных задач.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
584 Кб
Скачать
☆

2.5.3. Глобальные переменные

Структура описания переменных была рассмотрена ранее. Здесь отметим, что переменные, в зависимости от места описания в программе, делятся на глобальные (внешние) и локальные (внутренние).

Глобальные переменные, объявляются в заголовке программы (вне её тела) и действуют на протяжении выполнения всей программы. Доступ к таким переменным возможет из любой точки программы. Если глобальная переменная не проинициализирована явным образом, она инициализируется значением 0. Область действия глобальной переменной совпадает с областью видимости и простирается от точки её описания до конца файла исходного модуля программы, в котором она объявлена. Время жизни глобальной переменной – постоянное, т. е. совпадает с временем выполнения программы. Вообще говоря, программисты стараются избегать использования глобальных переменных и применяют их только в случае крайней необходимости, т. к. содержание таких переменных может быть изменено внутри тела любой функции, что чревато серьёзными ошибками при выполнении программы.

Локальные переменные имеют своей областью видимости функцию или блок, в которых они объявлены. В то же время область действия локальной переменной может исключать внутренний блок, если в нём объявлена переменная с тем же именем. Время жизни локальной переменной определяется временем выполнения блока или функции, в которой она объявлена.

2.5.4. Тело программы.

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

В простейшем варианте решение состоит из одного (основного) алгоритма. При этом тело программы есть одна (главная функция).

Тело программы

…

…

Тело программы

Заголовок главной функции

Заголовок главной фукнции

Тело главной функции

Тело главной функции

Заголовок i-й функции

Тело i-й функции

Рис. 3. Варианты структуры тела программы

Структура заголовка главной функции

тип main([argc, argv])

где тип – ключевое слово, определяющее тип значения,

возвращаемого функцией. Если не предполагается

возвращение какого-либо значения, в качестве

типа указывается ключевое слово void;

main – стандартное имя главной функции;

( ) – ограничители тела функции;

[ ] – признак необязательности содержимого;

argc – количество параметров, передаваемых в

главную функцию;

argv – указатель на массив символьных строк,

содержащий эти параметры.

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

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

{ Тело функции

}

Описания (объявления) локальных переменных или констант

Операторы

Комментарии

Рис.4. Структура тела функции

Структура и правила описания переменных, операторов и комментариев изложены ранее.

Изложенных в разделах 2.2-2.5 сведений достаточно для программирования задачи определения массы и стоимости ленты каучука.

Учитывая ограничения на алфавит языка С/С++, дадим соответствующим переменным новые имена и сформируем таблицу обозначений идентификаторов. вм новые имена и свозначим 0000000000000000000000000000000000000000000000000000000000000000000000

Таблица обозначений идентификаторов

В алгоритме

1

К1

К2

К3

К4

ЛШ

ЛТ

ЛПЛ

ЛС

ЛЦ

В программе

2

К1

К2

К3

К4

lsh

lt

lpl

ls

lc

1

ПС

ЛП

ЛО

МЧ

МС

СС

2

pc

lp

lo

mch

ms

ss

На основании схемы алгоритма с учётом рассмотренных конструкций С/С++ и правил их использования запишем программу решения задачи.

/*Задача расчета массы и стоимости ленты каучука.

Линейный вычислительный процесс. */

#include <stdio.h>

#include <conio.h>

#define K1 1000.0

#define K2 1000.0

#define K3 1.0e+6

#define K4 60.0

void main( )

{

float lsh, // ширина ленты

lt, // толщина ленты

lpl, // плотность

ls, // скорость ленты

lс, // цена

pc, // продолжительность смены

lp, // площадь ленты

lо, // объём ленты

mch, // масса, вырабатываемая в час

ms, // масса ленты каучука, вырабатываемая за смену

ss; // стоимость ленты

// Ввод исходных данных задачи

printf("\n Введите значение ширины ленты: ");

scanf("%f",&lsh);

printf("\n Введите значение толщины ленты: ");

scanf("%f",&lt);

printf("\n Введите значение плотности ленты: ");

scanf("%f",&lpl);

printf("\n Введите значение скорости движения ленты: ");

scanf("%f",&ls);

printf("\n Введите значение цены: ");

scanf("%f",&lс);

printf("\n Введите значение продолжительности смены: ");

scanf("%f",&pc);

// Расчёт

lp = lsh * lt / K1;

lo = lp * ls * K4;

mch = lpl * lo / K2 *K3;

ms = mch * pc;

ss = ms * lc;

// Вывод результата на экран монитора

printf("\n\n Масса ленты составляет %.3f кг/смену", ms);

printf("\n Стоимость ленты составляет %.3f руб/смену", ss);

getch( );

}

Последним оператором программы был вызов функции ввода символа с клавиатуры getch( ). Прототип данной функции содержится в файле conio.h. Функция используется для того, чтобы программа не завершала своего выполнения до тех пор, пока не будет нажата какая-либо клавиша.

Контрольные вопросы

  1. Какой процесс называется линейным вычислительным процессом?

  2. Каков алфавит языка С/С++?

  3. Каковы простейшие конструкции С/С++?

  4. Какие ключевые слова используются в С/С++?

  5. Что такое переменная, идентификатор переменной?

  6. Что такое область действия переменной?

  7. Что такое область видимости переменной?

  8. Что такое время жизни переменной?

  9. Каковы базовые типы переменных, их объём памяти и диапазон значений?

  10. Какова структура описателей переменных?

  11. Что такое константа?

  12. Что такое литеральная константа?

  13. Что такое типизированная константа?

  14. Что представляет собой символьная константа?

  15. Что представляет собой строковая константа?

  16. Какова структура целых констант?

  17. Какова структура вещественных констант?

  18. Какова структура описания типизированных констант?

  19. Что такое функция?

  20. Что такое прототип функции?

  21. Какова структура вызова функции?

  22. Что такое выражение?

  23. Что такое арифметическое выражение?

  24. Что такое логическое выражение?

  25. Какие операции используются в С/С++?

  26. Каковы правила вычисления выражений?

  27. Какова структура оператора присваивания?

  28. Какова структура операции приведения типа?

  29. Что такое оператор-выражение?

  30. Что такое блок-оператор?

  31. Что такое пустой оператор?

  32. Как осуществляется ввод данных функцией scanf?

  33. Как осуществляется вывод информации функцией printf?

  34. Какова структура операций помещения и извлечения данных из потока

  35. Какова общая структура С/С++ программы?

  36. Что такое комментарий и какие виды комментариев используются в С/С++

  37. Что такое препроцессор?

  38. Что такое директива препроцессора?

  39. Какова разница между глобальными и локальными переменными?

  40. Какова структура заголовка главной функции?

  41. Какова структура тела фукнции?

Приложение

1. На молочном заводе работают три поточные линии разлива продукции производительностью 18,6 л/мин, 1,255 т/час, 975 л/час выпускающие сметану, молоко, кефир соответственно. Определить суточную производительность (в тоннах) каждой линии и производства в целом, если плотность продуктов равна 1,12 г/см3, 997 г/л, 0,992 кг/л, а также потребность в таре - ёмкостью 0,25 л; 0,5л; 1л для указанных линий.

2. В вакуум-аппарат для варки карамели загрузили: сахар (258 кг), воду (67,5 л), лимонную кислоту (978 г), эссенцию барбариса (1155 мл). В результате карамелизации и упаривания выход готовой продукции составляет 83,7% от суммы исходных компонентов. Определить количество полученной карамели и процентное содержание в ней исходных продуктов, если считать, что в результате упаривания удаляется только вода.

3. На кондитерской фабрике установлены три поточные линии для производства карамели и одна - глазированных конфет. Производительность карамельных составляет 2,2 шт./сек; 78 шт./мин; 104 шт./мин. Средний вес конфеты 8 ; 12,5 и 11,35 г. Производительность конфетной линии - 83,4кг/ч. Определить суточную производительность каждой линии и общую производительность фабрики, если она работает непрерывно.

4. Упрощённая рецептура сырокопченой колбасы включают следующие исходные компоненты: говядина - 18,5%, свинина - 47,5%, конина - 12,7% , сало - 19,5%, соль - 1,3%; специи - 0,7%. Смесительная ёмкость 1,62 м заполнена сырой массой на 41,5%. Плотность смеси 1,28 кг/дм3. Определить количество исходных компонентов в кг от общего веса подготовленного к копчению колбасного фарша, а так же вес готовой колбасы, если в процессе копчения было удалено влаги 29,77% от общей сырой массы.

5. Потребность сахарного завода 25000 ц свеклы в сутки. Средняя сахаристость корней -12,65% общего веса. Потери веса при мойке 3,5%, при резке 2,8% . Степень извлечения сахара – 107,3 г из каждого килограмма, содержащегося в свекле. Определить в тоннах производительность завода по сахару и массу не извлеченного сахара в смену, сутки, декаду, если он работает непрерывно.

6. На ликероводочном заводе установлены четыре автомата разлива продукции. Для первого требуются бутылки ёмкостью 0,75 л, второго - 0,5 л (высокие), третьего - 0,5 л (низкие), четвёртого - 0,333 л. Определить часовую и суточную производительность каждой линии и производства в целом (в декалитрах), если известно, что потребность в таре для каждой линии равна - 1,5 бут/сек, 57 бут/мин, 65 бут/мин, 112 бут/мин.

7. Для хранения серной кислоты на химкомбинате используются 2 вертикальные цилиндрические ёмкости с коническим основанием, диаметры которых - 4,6 м; 4,8 м, высоты цилиндров - 7000 мм; 9500 мм, а высоты нижних конусов - 2,5 м; 3,3 м соответственно и одна шаровая с радиусом 212 см. Рассчитать время для заполнения емкостей с помощью насосов, если степень заполнения цилиндрических 85, а шаровой 78 % объёма. Производительность насосов - 5,5; 4,8; 3,96 т/ч. Плотность серной кислоты - 1,4 кг/л.

8. Маслоэкстракционным цехом получено 196,73 т подсолнечного масла плотностью 0,896 кг/дм3. Полученное масло разливается на 3 автоматических линиях. На первую приходится 26% полученного объема, на вторую – 35%, на третью - остальное. Производительность линий 7, 8 и 12 бутылок в минуту соответственно. Определить количество тары ( бутылок 1,5 л) для разлива полученной партии на каждой линии и требуемое для этого время (количество смен, суток).

9. Из шарообразной ёмкости с радиусом 1,75 м водный раствор латекса необходимо перекачать в кубическую с длиной ребра 3800 мм, используя насос производительностью 1,6 т/ч. Шарообразная емкость заполнена на 78%. Рассчитать массу полимера, его уровни в обеих емкостях и время перекачки из одной емкости в другую. Плотность водного раствора 0,93 кг/л, количество латекса в растворе 63,5 %.

10. На заводе СК водный раствор латекса хранится в горизонтальных цилиндрических емкостях с сегментами на концах. Длины цилиндров 680 см и 8,5 м, диаметры - 2,8 и 2,3 м, радиусы сегментов на концах 4 м. Рассчитать массу латекса в каждой из емкостей и количество рабочих смен, необходимых для опорожнения каждой емкости. Степень заполнения цилиндрических емкостей 88 и 73%. Концентрация латекса в растворе 56%. Потребность производства в латексе - 3,685 м3/ч. Время одной смены 6 ч.

11. Варка пива осуществляется в двух ёмкостях цилиндрической формы с коническим основанием. Диаметр цилиндров 3,85 м. Высота цилиндров 4,2 м. Высота конусов 1,5 м. Ёмкости заполнены на 85 и 89%. В результате выпаривания при варке потери составили 17,45 и 19,14% общего веса. Плотность подлежащего варке сусла равна 1,125 кг/л. Определить количество бутылок, требуемых для разлива пива из двух аппаратов, если из одного аппарата готовый продукт разливается в бутылки 0,5 л, а из другого - 0,33 л .

12. На гормолзаводе молоко хранится в охлаждающих танках: основном - горизонтальном цилиндрическом длиной 7,8 м, диаметром 2600 мм с сегментами на концах радиусом 5,5 м и дополнительном - кубическом с ребром 170 см. Определить геометрический объем каждой емкости и уровень молока в них при заполнении цилиндрической емкости на 86%, кубической на78% от объема.

13. Батарея выпарных аппаратов состоит из 3 вертикальных цилиндров высотой 2,7 м и диаметром 1,6 м. В первый аппарат для варки загружен сироп (раствор сахара в воде) концентрацией 14%. Высота заполнения 2,26 м. В результате упаривания в этом аппарате улетучилось 18,3% воды. После чего раствор перелили во второй аппарат для выпаривания 16,8% воды, а затем в третий для получения сиропа концентрацией 67%. Определить уровень и концентрацию сиропа в каждом аппарате до и после варки.

14. На хлебозаводе установлены три технологические линии выпуска хлебобулочных изделий. Первая, производительностью 365 кг/час выпекает хлеб подовый, вторая, производительностью 0,27 т/час - хлеб формовой. Третья производительностью 1,12 кг/мин –булки "городские". Определить общую стоимость выпускаемой продукции за смену, сутки, декаду, если вес штуки выпускаемой продукции соответственно равен - 1,2 кг; 0,9 кг; 230 г, а цена известна. Завод работает круглосуточно.

15. В ректификационной колонне отделяют высококипящий продукт от низкокипящего. В колонну было подано 11,45 т смеси плотностью 1,1 т/м3. Количество низкокипящего компонента в исходной смеси составляло 44,25%. Процесс продолжается 4 часа 20 мин. В первый час улетучилось 1,2 м3, во второй и третий по 0,96 м3, в четвёртый 0,87 м3 низко кипящего продукта и скорость разделения стала постоянной. Оставшуюся в колонне смесь перекачали в горизонтально расположенную цилиндрическую емкость длиной 5,68 м и радиусом 2,3 м. Определить массу полученной смеси и уровень в емкости, а так же процент оставшегося в смеси низкокипящего продукта.

16. На сыродельном заводе производительностью 32 т молока/сутки установлены ванны для окисления молока. Рассчитать количество параллельно расположенных в технологической линии ванн (батарею) для обеспечения бесперебойной работы завода, если геометрические размеры одной ванны - горизонтально расположенного полуцилиндра - равны: длина 1,65 м, радиус 450 мм, высота заполнения 425 мм, плотность молока 0,98 кг/л, время выдержки 3,5 часа. Предусмотреть резерв ёмкости не менее 15% от общего объёма батареи.

17. Сменная производительность пивзавода 2,36 т плотностью 1,083 кг/дм3. Для разлива используются бутылки ёмкостью 0,5 л. Определить сколько единиц продукции выпускается в смену, сутки и месяц. Рассчитать сменную, суточную и месячную стоимость продукции и величину отчислений в фонд заработной платы, если продажная цена 1 бутылки пива известна, а отчисления составляют 17% от месячной стоимости. Производство – двухсменное, с двумя выходными в неделю.

18. Химкомбинат ожидает прибытия реагента с плотностью 0,837 кг/дм3. На складе имеются две емкости: цилиндрическая горизонтальная длиной 4,6 м с радиусом 1380 мм и шарообразная радиусом 1840 мм. Первая должна быть заполнена на 85%, вторая на 4/5 объема. Определить уровни после заполнения и массу реагента (тонн) в каждой емкости, а так же общую массу, которую может принять комбинат.

19. При производстве серной кислоты необходимо из ёмкости, имеющей конусообразную форму (длина образующей конуса 6,7 м, угол между образующими 33), перекачать содержимое в ёмкость, имеющую цилиндрическую форму (радиус 2,85 м, высота 7,5 м). Рассчитать общие и рабочие объёмы емкостей, если коническая ёмкость заполнена на 63%, а так же уровни продукта в емкостях и время, необходимое для завершения технологической операции перекачки, если производительность насоса 5,3 т/ч. Плотность продукта 1,15 кг/дм3.

20. Биологическая урожайность сахарной свеклы на полях площадью 116 и 95 га составляет соответственно 118,5 и 125,1 ц/га., если потери при копке 6,97%, транспортировке 1,15%, сортировке 15,5%, хранении: 1,64% в первый месяц, 4,4% во второй месяц и 7,9% в третий. Определить сколько поездок шести КАМАЗов требуется для перевозки продукции на сахарный завод после 1-го, 2-х или 3-х месяцев хранения. Грузоподъемность 1-й машины 6,5 т.

21. На кислородной станции химкомбината работает установка получения кислорода и азота из воздуха. Потребность производства в азоте 36,5 м3/смену. Определить расход воздуха за час, смену, сутки и массы получаемых газообразных азота и кислорода, если их объемные доли в воздухе известны. Определить количество баллонов для хранения жидкого кислорода, вырабатываемого в сутки, если для получения 1 л жидкого кислорода требуется 1100 дм3 газообразного. Объем одного баллона 95 дм3. Плотность воздуха 0,0013 кг/дм3.

22. В лаборатории металловедения редкоземельные металлы могут принять шарообразную, пластинчатую и проволочную форму. Рассчитать площади поверхности 3,2 кг металла плотностью 97 г/см3, в случае оформления его в каждом из возможных вариантов. Толщина пластин 3 мм, ширина 2,5 см, диаметр проволоки 1,5 мм. Определить все варианты соотношения площадей.

23. Кондитерский цех хлебозавода имеет линию по производству бисквитных тортов производительностью 3 шт./мин. Масса одного изделия 1 ,2 кг. Рецептура: мука в/с 543 г/кг, вода 0,235 л/кг, сахар 82 г/кг, дрожжи 1,35 г/кг, фруктовая эссенция 16,5 г/кг, масло сливочное 90 г/кг, яичный порошок 20 г/кг. Рассчитать потребность в каждом виде сырья, необходимого для работы цеха на смену, сутки и декаду, если производство непрерывное.

24. Для освещения цеха используются лампы мощностью 40 Вт в количестве К1, мощностью 60 Вт в количестве К2, мощностью 100 Вт в количестве К3 и вентиляторы мощностью 2,5 кВт в количестве К4. Рассчитать затраты на оплату электроэнергии, потребляемой каждой из указанных групп отдельно и цехом в целом за смену, сутки, месяц, если они включены постоянно, а цена 1 кВт/ч известна.

25. Вакуум-аппарат имеет форму вертикального цилиндра высотой 2,8 м и радиусом 830 мм. Аппарат заполнен молоком плотностью 0, 985 кг/л на 3/5 объема. Коэффициент испарения 8,65 % влаги в час. Конечная плотность сгущенного молока 1,56 кг/дм3. Определить время работы аппарата, массу полученного продукта и его уровень в аппарате, а так же стоимость готовой партии, если цена 1 кг сгущенного молока известна.

26. Аппарат для приготовления сливочного масла имеет форму горизонтального цилиндра длиной 2,1 м и радиусом 710 мм. В аппарат было загружено 4,63 м3 сливок плотностью 963 г/дм3 и содержанием воды (сыворотки) 46,67%. В результате взбивания было удалено 1811 кг влаги. Определить массу сливочного масла, его уровень, плотность и стоимость полученной партии, если цена 1 кг известна.

27. Средний срок службы ЭВМ без капитального ремонта - 7 лет. Режим работы - одно- или двухсменный при пятидневной рабочей неделе. Ремонтно-профилактические работы составляют 10 мин. – в смену, 30 мин. - еженедельно, 2 час - ежемесячно, 8 часов - раз в полугодие. Рассчитать количество смен, суток, недель безаварийной работы ЭВМ, а так же время на выполнение профилактических работ.

28. Скорость ввода текста оператором ЭВМ 60 знаков/мин. Число часов в смену известно. После двух часов непрерывной работы полагается 30-ти минутный перерыв. Стандартная длина строки 62 знака. Количество строк на странице 40. Рассчитать возможное количество символов, строк и страниц введенных за смену. Определить возможную оплату, если она составляет 36% от стоимости 1 листа. Цена набора одного листа известна.

29. Хлебозавод выпускает баранки славянские. Рецептура, рассчитанная на 100 кг муки, имеет вид: дрожжи хлебопекарные 15 кг, соль поваренная 1кг, вода по расчету, сахар-песок 10 кг, маргарин столовый 12 кг, сухое молоко 4 кг, кардамон 0.08 кг, мускатный орех 0.05 кг. Рассчитать необходимую для приготовления массу каждого из компонентов, а также их сумму для работы за час, за смену, за сутки, за декаду, за месяц, за квартал, если хлебозавод выпускает за минуту 4 коробки соломки массой 500 грамм. Предусмотреть уменьшение массы каждого изделия при выпечке.

30. Катер грузоподъемностью 12,3 т загрузили на 76 % в порту А. В порту Б он оставляет 41 % от загрузки. После чего загружается полностью для доставки груза в порт С. Порт Б расположен ниже по течению порта А на 134 км. Порт С ниже по течению от порта Б на 227 км. В порту С происходит полная разгрузка привезенного. После чего на борт загружено 11700 упаковок массой 750 г каждая для доставки в порт А.. Скорость катера 29 км/час. Скорость течения реки 2,2 м/с. Скорость загрузки (выгрузки) 36 кг в мин. Определить массу грузов, перевезенных в каждый порт, а так же время на доставку и загрузку (разгрузку) в них.

1 В 32-х разрядных средах диапазон значений типов int и unsigned int соответствуют типам long и unsigned long

2 То же, что и int

3 Разные компиляторы накладывают свои ограничения на количество распознаваемых символов в идентификаторе

4 Запись F | N означает F или N

5 В языке С++ реализован механизм перегрузки, позволяющий программисту изменять по собственному усмотрению назначение некоторых базовых операций.

61