Алгоритм решения задачи в основном — тот же, что и в примере 1, поэтому его схему тут не приводим. Разница состоит в том, что в начале выполнения, после инициализации датчика случайных чисел, нужно получить случайное число в диапазоне 50–200 (назовем его sіze) и выделить память для массива целых чисел размером sіze. (На схеме алгоритма для примера 1 эти действия должны быть вставлены сразу же после блока 2). Перед самым выходом из программы должны освободить выделенную память (На схеме алгоритма для примера 1 — после блока 19).
Существенные отличия возникают в реализации алгоритма. Проще всего задания могло бы быть выполнено простой заменой во всех местах операции индексации на операцию адресации, имея в виду тождественность:
Ar[i]=*(Ar+i)
Это соответствовало бы букве задания, но не духу языка C. Если переходим от индексации к адресации, у нас устраняется необходимость в индексах и даже в переменных, которые их представляют. Это приводит к другому способу реализации всех циклов. Если имя массива Ar является указателем на его начало, то вместо цикла, в котором индекс і меняется от 0 до sіze, можем организовать цикл, в котором некоторый текущий указатель C r меняется от Ar до Ar+sіze. Также, когда нужно запомнить начало отрицательной последовательности, можем запоминать не индекс соответствующего элемента, а его адрес — указатель на него.
Определениепеременных программы
Переменные программы также описываем в сравнении с примером 1. Память для массива целых чисел в нашей работе не выделяется на этапе компиляции, так что достаточно объявить в программе только переменную — указатель на начало массива:
іnt *Ar;
Размерность массива определяется при выполнении программы, так что для ее сохранения нужна отдельная переменная:
іnt sіze;
Вместо переменных, которые в примере 1 являются индексами элементов массива, будем применять указатели:
іnt *Cr;
это будет указатель на текущий элемент массива при его полном переборе, и:
іnt *Іr;
в этом указателе будет сохраняться адрес начала отрицательной последовательности, а потом — при обработке последовательности — адрес текущего ее элемента.
Переменные для сохранения суммы элементов и среднего значения и количества элементов в последовательности остаются те же самые:
int av;
int nn;
Разработка текста программы
Кроме тех файлов, которые были включены в текст программы примера 1:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
включаем также файл alloc . h, в котором содержатся описания функций динамического выделения/освобождения памяти:
# include < alloc . h >
Начинаем главную функцию и объявляем в ней переменные программы по п.5.2. Кодовая часть программы начинается с инициализации датчика случайных чисел и получения случайного числа для размера массива:
randomize();
size=random(151)+50;
Функция randвозвращает число в диапазоне 0–150, прибавлением к нему 50 переводим его в диапазон 50–200. Полученный размер массива сразу выводим на экран:
printf (" size =% d \ n ", size );
Обращаемся к функции выделения памяти:
Ar=(int far *)malloc(size*sizeof(int));
Функция malloc() требует параметр - размер запрошенной памяти в байтах. Переменная sіze — это количество элементов в массиве; для задания размера памяти в байтах умножаем ее на размер одного элемента. Функция malloc() возвращает нетипизированный указатель, преобразуем его в указатель на int и записываем в переменную Ar.
Далее организуем цикл перебора массива. В отличие от примера 1 тут в одном цикле и получаем случайные числа, и выводим начальный массив на экран. Заголовок этого цикла существенно отличается от примера 1:
for ( Cr = Ar ; Cr < Ar + size ; Cr ++) {
В начальных установках цикла записываем в переменную Cr адрес начала массива, т.е. Cr показывает на элемент с индексом 0. В конце каждой итерации Cr увеличивается на 1, т.е. показывает на следующий элемент массива. Последняя итерация происходит при значении Cr=Ar+sіze–1, т.е. Cr будет показывать на последний элемент. В каждой итерации обращаемся к текущему элементу массива как *Cr, т.е. обращаемся к тому, на что показывает указатель Cr.
Далее идет заголовок цикла перебора массива, который организуется та же, как предыдущий, но в начальных установках еще присваиваем начальное значение счетчику nn.
Тело цикла в основном подобно тому, что есть в примере 1 за исключением того, что к текущему элементу массива обращаемся через указатель на него: *Cr. Там, где требуется запомнить начало отрицательной последовательности, просто сохраняем текущее значение указателя Cr в переменной-указателе I r.
Внутренний цикл, в котором обрабатывается отрицательная последовательность, существенно отличается от примера 1:
for (av/=nn; Ir<Cr; Ir++)
if (*Ir<av) *Ir=av;
Начальные установки этого цикла — только усреднение значения в av, переменная Іr уже содержит в себе указатель на первый элемент отрицательной последовательности. В конце каждой итерации Іr увеличивается на 1, т.е. показывает на следующий элемент последовательности (обращение к этому элементу — *Іr). Последняя итерация происходит при значении Іr= C r–1, поскольку C r показывает на первый положительный элемент за отрицательной последовательностью.
Остаток программы повторяет предыдущие фрагменты.
Предпоследний оператор — обращение к функции free() для освобождения памяти, которая была выделена функцией malloc(): free(Ar);
Полный текст программы приведен ниже.
/****************************************************/
/* Указателии массив ы */
/****************************************************/
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <alloc.h>
int main(void)
{
int size; /* размер массива */
int *Ar; /* указатель на началомассива */
int *Cr, *Ir; /* текущиеуказатели */
int av, nn; /* среднее значениеи количество
элементовв последовательности */
randomize(); /* инициализация rand */
size=random(151)+50;
printf("size=%d\n",size);
Ar=(int far *)malloc(size*sizeof(int)); /* выделение памяти */
/* заполнениемассиваслучайными числами
и выводначального массива */
printf("Начальный массив:\n");
for (Cr=Ar; Cr<Ar+size; Cr++)
{ *Cr=random(101)-50;
printf("%3d ",*Cr);
}
putchar('\n');
/* перебор массива */
for (nn=0, Cr=Ar; Cr<Ar+size; Cr++)
{ if (*Cr<0)
/* обработка отрицательногоэлемента */
if (!nn)
{ /* начало последовательности: запомнить
адресначала в Іr, установитьначальное
значениенакопителя суммыив счетчика элементов */
Ir=Cr; av=*Cr; nn=1;
}
else
{ av+=*Cr; nn++;
/* подсчет суммыи количестваэлементов*/
} /* конец обработки отрицательного элемента*/
else /* обработка положительного элемента */
if (nn)
{ /* еслиестьнеобработаннаяотрицательная
последовательность:
усреднениеи перебор с ограничением */
for (av/=nn; Ir<Cr; Ir++)
if (*Ir<av) *Ir=av;
nn=0; /* последовательность обработана */
} /* конецеслиесть необработанная */
} /* конец перебора массива */
if (nn) /* если не обработана последняяотрицательная последовательность */
for (av/=nn; Ir<Cr; Ir++)
if (*Ir<av) *Ir=av;
/* вывод результатов */
printf("Массив-результат:\n");
for (Cr=Ar; Cr<Ar+size; printf("%3d ",*Cr++));
putchar('\n');
free(Ar); /* освобождение памяти */
return 0;
}
Отладка программы
Отладку программы следует вести по тому же плану, что и в примере 1. Следует, однако, отметить, что отслеживать значения в пошаговом режиме тут несколько труднее, ибо если в примере 1 могли видеть достаточно понятные значения индексов, то тут вместо них увидим значения указателей, более сложные для понимания. Поэтому рекомендуем больше полагаться на выявление ошибок путем анализа результатов программы.
Лабораторная работа №8
Работа с табличными данными вязыке С
1. Цель работы
2. Варианты заданий
3. Пример
Цель работы
Цель лабораторной работы— освоить прие алгоритмизации при организации обработки табличных данных.
Варианты заданий
Разработать программу, выводящую итоговые показатели или выборку данных из предложенных исходных таблиц. При программированиииспользовать структуры, списки, очереди.
Предусмотреть при разработке программ следующие пункты меню:
Вовсех вариантах после текстасобственно задания в скобках перечислены названия столбцов таблицы-результата.
Вариант 1. Основные показатели развития промышленности Украины.
Вид продукции | Единицы измерения | 1913 | 1928 | 1940 | 1945 |
Электроэнергия | млрд. кВт/г | 0.5 | 1.3 | 12.4 | 3.1 |
Сода кальцинированная | тыс. тонн | 119 | 175.7 | 434 | 128.7 |
Минеральные удобрения | тыс. тонн | 36 | 57 | 1012 | 136 |
Комбайны угольные | шт. | — | — | 22 | — |
Тракторы | тыс. шт. | 269 | 297 | 1218 | 335 |
а) Производство какой продукции промышленности Украины в 1913г. было максимальным? [вид продукции, объем ее производства в 1913 году, единица измерения];
б) Производство каких видов продукции промышленности Украины в 1945г. было больше 150 тыс. т.? [вид продукции, объем ее производства в 1945г., единицы измерения.].
Вариант 2. Посевные площади зерновых культур (млн. га).
Культуры | 1913 | 1928 | 1940 | 1950 | 1955 |
Рожь | 28.2 | 24.1 | 23.1 | 23.6 | 19.1 |
Пшеница | 23 | 27.7 | 40.3 | 38.5 | 60.5 |
Кукуруза | 2.2 | 4.4 | 3.6 | 4.8 | 9.1 |
Ячмень | 13.2 | 7.3 | 11.3 | 8.6 | 9.9 |
Овес | 19.1 | 17.2 | 20.2 | 16.2 | 14.8 |
Гречиха | 2.2 | 2.9 | 2 | 3 | 2.8 |
Просо | 3.5 | 5,7 | 6 | 3.8 | 7.7 |
а) Какую зерновую культуру в 1913г. сеяли меньше всего? [зерновая культура, ее посевная площадь в 1913г.];
б) Посевная площадь каких зерновых культур в 1955г. превысила 10 млн. га? [зерновая культура, ее посевная площадь в 1955 г.].
Вариант 3. Посевные площадив (млн. га).
Культуры | 1913 | 1928 | 1940 | 1945 | 1953 |
Зерновые | 94.3 | 92.2 | 110.5 | 83.3 | 106.7 |
Картовель | 3.1 | 5.7 | 7.7 | 8.1 | 8.3 |
Овощи | 0.5 | 0.8 | 1.3 | 1.8 | 1.3 |
Кормовые | 2.1 | 3.9 | 18.1 | 10.2 | 28.7 |
а) Под какую культуру в 1913г. использовалась максимальная посевная площадь? [культура, ее посевная площадь в 1913 г.];
б) Посевные площади каких культур в 1953 г. превысили 10 млн. га ? [наименование культуры, ее посевная площадь в 1953г.].
Вариант 4. Государственный бюджет идолг Англии. (млн. ф. ст.).
Год | Расход, всего | % военных расходов | Дефицит(–) или превыщение (+) доходов | Государственныйдолг |
1938/39 | 1106 | 22 | –163 | 7289 |
1949/50 | 3928 | 18,9 | +41 | 25986 |
1955/56 | 5253 | 26,8 | –141 | 27520 |
1956/57 | 5704 | 26,8 | –321 | 27280 |
1958/59 | 5988 | 24,5 | –182 | 27300 |
а) В каком году дефицит бюджета Англии был минимальным? [год, величина дефицита];
б) В каких годах государственный долг Англии превышал 27400 млн. ф. ст.? [год, государственный долг].
Вариант 5. Производствоэлектроэнергии (млрд. кВт/ч).
Страны | 1937 | 1950 | 1955 |
Китай | 6 | 4.3 | 12.3 |
Польша | 3.6 | 9.4 | 17.8 |
Чехословакия | 4.1 | 9.3 | 15 |
Венгрия | 1.4 | 3 | 5.4 |
Румыния | 1.1 | 2.1 | 4.3 |
Болгария | 0.3 | 0.8 | 2.1 |
а) В какой стране в 1950г. произвели меньше всего электроэнергии? [страна, объем производства в 1950г.];
б) В каких странах производство электроэнергии в 1937г. не превысило 2 млрд. кВт/ч.? [страна, объем производства в 1937г.].
Вариант 6. Государственный бюджет США (млрд. долларов).
Год | Всего доходов | Налоговые доходы | Всего расходов | Военныерасходы |
1938/39 | 5 | 4.8 | 8.9 | 1.1 |
1949/50 | 36.5 | 35.1 | 29.6 | 13 |
1955/56 | 68.2 | 65.2 | 66.5 | 40.6 |
1956/57 | 71 | 68.3 | 69.4 | 43.3 |
1957/58 | 69.1 | 65.9 | 71.9 | 44.1 |
а) В каком году в США собрали меньше всего налогов? [год, налоговые доходы];
б) В каких годах военные расходы США превышали 40 млрд. долларов? [год, военные расходы].
Вариант 7. Основные показатели развития промышленности Украины.
Вид продукции | Единицыизмерения | 1913 | 1928 | 1940 | 1959 |
Автомобили грузовые | тыс. шт. | — | — | — | 12.6 |
Цемент | тыс. тонн | 269 | 297 | 1218 | 7017 |
Кирпич | млрд. шт. | 0.6 | 0.7 | 1.6 | 6.3 |
Ткани х.б | млн. м | 4.7 | 2 | 13.8 | 88.2 |
Тканишерстяные | млн. м | 5.3 | 2 | 12 | 17.7 |
Сахар-песок | тыс. тонн | 1107 | 1041 | 1580 | 4103 |
а) Производство какого вида продукции в Украине в 1913г. было минимальным? [вид продукции, объем ее производства в 1913г., единица измерения];
б) Производство каких видов продукции в Украине в 1940г. было больше 100 единиц? [вид продукции, объем ее производства в 1940г., единица измерения].
Вариант 8. Добычаполезныхископаемыхв США.
Ископаемые | Одиниця измерения | 1937 | 1943 | 1957 |
Каменный уголь | млн. тонн | 451 | 503 | 458 |
Нефть | млн. тонн | 173 | 293 | 354 |
Газ | млрд. м3 | 70 | 99.5 | 300 |
Железная руда | млн. тонн | 73 | 103 | 106 |
Марганец | тыс. тонн | 41 | 186 | 332 |
Медь | тыс. тонн | 764 | 990 | 992 |
Свинец | тыс. тонн | 422 | 44 | 306 |
Цинк | тыс. тонн | 568 | 675 | 483 |
а) Добыча какого полезного ископаемого в США в 1937г. была максимальной? [наименование полезного ископаемого, объем добычи в 1937 г., единица измерения];
б) Добыча какого полезного ископаемого в США в 1957г. не превысила 1 млн. тонн? [наименование полезного ископаемого, объем добычи в 1957г., единица измерения].
Вариант 9. Показатеи развития торговли.
Показатель | 1932 | 1940 | 1950 | 1958 |
Объем рознмчного товарооборота | 40.4 | 175.1 | 359.6 | 677 |
Число предприятий (тыс.) | 340.2 | 494 | 511 | 650 |
Количествоработников (тыс.) | 1488 | 2166 | 1967 | 2847 |
Издержкиобращения (%) | 12.9 | 9.7 | 7.7 | 6.6 |
а) Какой показатель развития торговли имел минимальное значение в 1950г.? [показатель, его значение в 1950г.];
б) Какие показатели развития торговли не превысили значения 100 единиц в 1932г.? [показатель, его значение в 1932г., единица измерения].
Вариант 10. Производство продукцииживотноводства
Продукты | Единица измерения | 1913 | 1940 | 1950 | 1958 |
Мясо и сало | млн. тонн | 5 | 4.7 | 4.9 | 7.9 |
Молоко | млн. тонн | 29.4 | 33.6 | 35.3 | 57.8 |
Шерсть | тыс. тонн | 192 | 161 | 180 | 321 |
Яйца | млрд. штук | 11.9 | 12.2 | 11.7 | 23.5 |
а) Производство какого продукта животноводства в 1913г. было минимальным? [наименование продукта животноводства, объем его производства в 1913г., единица измерения];
б) Производство каких продуктов животноводства в 1958г. превысило 1 млн. тонн? [наименование продукта животноводства, объем его производства в 1958г., единица измерения].
Вариант 11. Охрана здоровья в (тыс.).
Республика |
1940
1960
а) В какой республике значение отношения числа врачей к числу коек в 1940г. было минимальным? [республика, число врачей, число коек, отношение числа врачей к числу коек (все данные за 1940г.)];
б) В каких республиках число врачей в 1960г. было меньше 50 тыс.? [республика, число врачей].
Вариант 12. Структура добычи минерального топлива (в % в перерасчете на условное топливо).
Вид топлива | 1955 | 1956 | 1954 |
Каменный и бурый уголь | 68.6 | 62.1 | 32.7 |
Нефть | 27.8 | 27.4 | 38.7 |
Природный газ | 2.5 | 5.3 | 28.6 |
Торф | 4.5 | 4.5 | — |
Горючие сланцы | 0.6 | 0.7 | — |
а) Добыча какого топлива в 1956г. была максимальной? [вид топлива, объем его добычи в 1956г.];
б) Добыча каких видов минерального топлива в США была не меньше 35%? [вид топлива, объем его добычи в 1954 г.].
Вариант 13. Производство цемента (млн. т).
Страна | 1937 | 1958 |
Китай | 2.3 | 9.3 |
Польша | 1.3 | 5.0 |
Чехословакия | 1.3 | 4.1 |
Венгрия | 0.3 | 1.3 |
Болгария | 0.2 | 0.9 |
Румыния | 5.7 | 33.3 |
а) В какой стране в 1958г. произвели больше всего цемента? [страна, объем производства цемента в 1958г.];
б) В каких странах производство цемента в 1937г. было не меньше 1 млн. тонн? [страна, объем производства в 1937г.].
Вариант 14. Международная торговля.
Год | Оборот (млрд. $) | Индекс экспорта (1953 год = 100) | ||
США | Англия | ФРГ | ||
1953 | 149 | 100 | 100 | 100 |
1954 | 154 | 93 | 101 | 123 |
1955 | 170 | 103 | 113 | 152 |
1956 | 188 | 112 | 112 | 171 |
1957 | 204 | 114 | 116 | 196 |
1958 | 193 | 119 | 116 | 205 |
а) В каком году индекс экспорта США был минимальным? [год, индекс экспорта США];
б) В каких годах индекс экспорта ФРГ был не больше 150%? [год, индекс экспорта ФРГ].
Вариант 15. Поголовье продуктивногоскота (на 100 га угодий)
Види | 1940 | 1950 | 1955 |
Крупный рогатый скот, из них Коровы | 11 6 | 12 5 | 14 6 |
Свиньи | 15 | 13 | 25 |
Овцы | 17 | 17 | 26 |
Козы | 2 | 4 | 3 |
а) Поголовье какого вида продуктивного скота в 1940г. было максимальным? [вид продуктивного скота, его поголовье в 1940г.];
б) Поголовье какого видапродуктивного скота в в 1955г. не превысило 10 (на 100 га угодий)? [вид продуктивного скота, его поголовье в 1955г.].
Вариант 16. Урожайность сельскохозяйственных культур в (ц/га).
Культуры | 1913 | 1928 | 1940 | 1945 | 1953 |
Зерновые | 8.1 | 7.9 | 8.6 | 7.9 | 7.8 |
Сахарная свекла | 168 | 132 | 146 | 159 | 148 |
Хлопок-сырец | 10.8 | 8.1 | 10.8 | 15.3 | 20.5 |
Льноволокно | 3.3 | 2.4 | 1.7 | 1.3 | 1.3 |
Овощи | 91 | 132 | 97 | 72 | 87 |
а) Урожайность какой сельскохозяйственной культуры в 1940г. была минимальной? [культура, ее урожайность в 1940г.];
б) Урожайность каких культур в 1945г. была меньше 20 ц/га? [сельскохозяйственная культура, ее урожайность в 1945г.].
Вариант 17. Структура внешней торговли Чехословакии (в % отстоимости).
Показатель |
1948 |
1958 | ||
Экспорт | Импорт | Экспорт | Импорт | |
Машины и оборудование | 20.3 | 7.2 | 43.4 | 18.7 |
Топливо и сырье | 43.5 | 56.5 | 31.1 | 54.7 |
Продовольственные товары | 5.5 | 33.6 | 7.1 | 23.1 |
Остальныепотребительские товары | 30.2 | 2.7 | 18.4 | 3.5 |
а) Экспорт какого вида товаров Чехословакии в 1958 г. был максимальным? [наименование товара, его экспорт в 1958г.];
б) Импорт каких видов товаров Чехословакии в 1948г. превысил 25%? [наименование товара, его импорт в 1948г.].
Вариант 18. Производство чугуна и стали (тыс. тонн).
Страны |
Чугун |
Сталь | ||
1938 | 1958 | 1938 | 1958 | |
Китай | 945 | 13690 | 488 | 11080 |
Чехословакия | 1675 | 3774 | 2118 | 5510 |
Польша | 880 | 3864 | 1440 | 5631 |
Венгрия | 335 | 1082 | 647 | 1627 |
Румыния | 132 | 737 | 284 | 934 |
а) В какой стране в 1958г. произвели меньше всего чугуна? [страна, объем производства чугуна в 1958г.];
б) В каких странах производство стали в 1938г. не превысило 900 тыс. т.? [страна, объем производства стали в 1938г.].
Вариант 19. Производство продукциитяжелой промышленности
Вид продукции | Единицаизмерения | 1913 | 1928 | 1940 | 1958 |
Станки | тыс. шт. | 1.5 | 2 | 58.4 | 138 |
Турбины | тыс. кВт | 5.9 | 44.1 | 1179 | 6031 |
Экскаваторы | шт. | — | — | 274 | 10105 |
Цемент | млн. тонн | 1.5 | 1.8 | 5.7 | 33.1 |
Автомобили | тыс. шт. | — | 0.84 | 145.4 | 511 |
Тракторы | тыс. шт. | — | 1.3 | 31.6 | 219.7 |
а) Производство какой продукции тяжелой промышленности в 1928г. было минимальным? [вид продукции, объем ее производства в 1928г., единица измерения];
б) Производство каких видов продукции тяжелой промышленности в 1958г. было меньше 300 тыс. штук? [вид продукции, объем ее производства в 1958г., единицы измерения.].
Вариант 20. Выпуск промышленной продукции в Японии.
Вид продукции | Единицыизмерения | 1937 | 1950 | 1958 |
Медь | тыс. тонн | 86.7 | 84.7 | 123.7 |
Цинк | тыс. тонн | 49.2 | 49 | 143 |
Свинец | тыс. тонн | 10.3 | 16 | 41.3 |
Алюминий | тыс. тонн | 10.7 | 28.3 | 84.5 |
Серная кислота | млн. тонн | 3.5 | 3.2 | 3.8 |
Цемент | млн. тонн | 6.1 | 4.4 | 14.98 |
а) Производство какого вида продукции в Японии в 1950г. было минимальным? [вид продукции, объем ее производства в 1950г., единица измерения];
б) Производство каких видов продукции в Японии в 1937г. было больше 10 единиц? [вид продукции, объем ее производства в 1937г., единица измерения].
Вариант 21. Производствоэлектроэнергииимощностьэлектростанций
Год |
Производство (млн. кВт/ч) |
Потужність (тис. кВт) | ||
Всего | в т.ч. гидро | Всего | в т.ч. ГЭС | |
1913 | 1945 | 35 | 1098 | 16 |
1928 | 5007 | 420 | 1905 | 121 |
1940 | 48309 | 5113 | 11192 | 1587 |
1945 | 43257 | 4841 | 11124 | 1252 |
1955 | 170225 | 23165 | 37243 | 5996 |
а) В каком году производство всей электроэнергии было максимальным? [год, производство электроэнергии (всего)];
б) В каких годах мощность ГЭС превысила 1000 кВт.? [год, мощность ГЭС.].
Вариант 22. Удельный весстранвмировом капиталистическомэкспорте (% к итогу).
Страны | 1883 | 1913 | 1929 | 1937 | 1946 | 1956 |
США | 10.7 | 13.3 | 15.6 | 12.9 | 30.1 | 20.7 |
Англия | 15.6 | 13.9 | 10.8 | 10 | 11.6 | 9.7 |
Франция | 8.9 | 7.2 | 6 | 3.7 | 2.7 | 4.9 |
Германия | 10.3 | 13.1 | 9.7 | 9.3 | 0.7 | 8.0 |
Япония | 0.5 | 1.7 | 2.9 | 4.7 | 0.3 | 2.7 |
а) Удельный вес какой страны в мировом капиталистическом экспорте в 1913 г. был максимальным? [страна, ее удельный вес в 1913 г];
б) Удельный вес каких стран в мировом капиталистическом экспорте в 1956 г. не превысил 8% к итогу ? [страна, ее удельный вес в 1956 г.].
Вариант 23. Производство продукциитяжелой промышленности
Вид | Единицыизмерения | 1913 | 1928 | 1940 | 1958 |
Чугун | млн. тонн | 4.2 | 3.3 | 14.9 | 39.6 |
Сталь | млн. тонн | 4.2 | 4.3 | 18.3 | 54.9 |
Уголь | млн. тонн | 29.1 | 35.5 | 165 | 496 |
Нефть | млн. тонн | 9.2 | 11.6 | 31.1 | 113 |
Газ | млрд. м3 | 0.02 | 0.33 | 3.39 | 29.9 |
а) Производство какого вида продукции тяжелой промышленности в 1913г. было минимальным? [продукция, объем ее производства в 1913 г., единица измерения];
б) Производство каких видов продукции в 1958 г. превысило 50 млн. т.? [продукция, объем ее производства в 1958г., единицы измерения].
Вариант 24. Производство продукцииэлектротехническойпромышленности
Вид продукции | Единицы измерения | 1928 | 1940 | 1945 | 1958 |
Генераторыи турбины | тыс. кВт | 75 | 468 | 265 | 5186 |
Электродвигатели мощностью свыше 100 кВт | тыс. шт. | 0.4 | 3.1 | 3.2 | 16.3 |
Электродвигатели мощностью до 100 кВт | тыс. шт. | 32.8 | 259.3 | 110.7 | 2215 |
Холодильники бытовые | тыс. шт. | — | 3.5 | 0.3 | 359 |
а) Производство какого вида продукции электротехнической промышленности в 1940г. было минимальным? [вид продукции, объем ее производства в 1940г., единица измерения];
б) Производство каких видов продукции электротехнической промышленности в 1945г. было меньше 10 тыс. штук? [вид продукции, объем ее производства в 1945г., единицы измерения.].
Вариант 25. Государственный бюджет идолг Франции (млрд. фр.)
Год | Расход | Дефицит | Государственныйдолг |
1938 | 82 | –28 | 424 |
1950 | 2357 | –280 | 4133 |
1955 | 3945 | –495 | 5887 |
1956 | 4643 | –765 | 5495 |
1957 | 5640 | –655 | 7188 |
1958 | 5486 | –258 | 8144 |
а) В каком году расходная часть бюджета Франции была максимальной? [год, величина расхода];
б) В каких годах дефицит бюджета Франции не превышал 500 млрд. фр.? [год, величина дефицита].
Вариант 26. Энергетическиемощностисельскогохозяйства (млн. л. сил).
Вид | 1940 | 1950 | 1958 |
Трактор ы | 17,6 | 22 | 42,6 |
Мотор ы комбайнов | 5,8 | 8 | 22,2 |
Автомобили | 11,9 | 21,3 | 58 |
Электрооборудование | 1,6 | 3,4 | 9,7 |
а) Какой вид сельскохозяйственной техники в 1940г. был наиболее мощным? [вид сельскохозяйственной техники, его мощность в 1940г.];
б) Энергетическая мощность каких видов сельскохозяйственной техники в 1958г. не превышала 30 млн. л. сил? [вид сельскохозяйственной техники, его мощность в 1958г.].
Вариант 27. Добыча минерального топлива
Года | Уголь (млн. т) | Нефть (млн. т) | Газ (млрд. м3) | Сланцы (тыс. т) |
1913 | 29.1 | 9.2 | — | — |
1928 | 35.5 | 11.6 | 0.3 | 0.6 |
1940 | 165 | 31.1 | 3.2 | 1662.9 |
1950 | 261 | 37 | 5.6 | 4710 |
а) В каком году добыли меньше всего угля ? [год, объем добычи угля];
б) В каких годах добыли не менее 20 млн. т. нефти? [год, объем добычи нефти].
Вариант 28. Основные показатели развития промышленности Украины.
Вид продукции | Единицыизмерения | 1913 | 1928 | 1940 | 1959 |
Чугун | млн. тонн | 2.9 | 2.4 | 9.6 | 22.3 |
Сталь | млн. тонн | 2.4 | 2.4 | 8.9 | 24 |
Прокат | млн. тонн | 2.1 | 2 | 6.5 | 19.6 |
Железная руда | млн.тонн | 6.9 | 4.7 | 20.2 | 53.5 |
Кокс | млн. тонн | 4.4 | 4 | 15.7 | 29.2 |
Уголь | млн. тонн | 22.8 | 24.8 | 83.8 | 167.7 |
Нафта | тыс. тонн | 1047 | — | 353 | 1600 |
Газ | млрд. м3 | — | — | 0.5 | 11.6 |
а) Производство какого вида продукции промышленности Украины в 1928г. было максимальным? [продукция, объем ее производства в 1928г., единица измерения];
б) Производство каких видов продукции Украины в 1940г. не превысило 25 млн. т.? [продукция, объем ее производства в 1940г., единицы измерения].
Вариант 29. Хлопковоепроизводство в России.
Показатель | 1913 | 1928 | 1940 | 1958 |
Посевная площадь (млн. га) | 0.69 | 0.97 | 2.08 | 2.15 |
Заготовкии закупки (млн. т) | 0.68 | 1.03 | 2.51 | 4.4 |
Сбор з 1 га (ц) | 13 | 6.8 | 12.1 | 20.4 |
а) В каком году сбор хлопка с 1 га в России был минимальным [год, сбор с 1 га];
б) В каких годах посевная площадь хлопка в России превысила 1 млн. га? [год, посевная площадь].
Вариант 30. Производство сельскохозяйственных продуктов.
Продукция |
Южная Америка |
Австралия | ||
(млн.т.) | 1953 | 1957 | 1953 | 1957 |
Виноград | 2.6 | 2.7 | 0.5 | 0.5 |
Мясо и сало | 5.4 | 6.3 | 1.9 | 2.1 |
Молоко | 13.1 | 15 | 11.1 | 11.5 |
Шерсть | 0.3 | 0.3 | 0.8 | 0.9 |
Яйца (млрд. шт.) | 9.1 | 11.1 | 3 | 3 |
а) Производство какого сельскохозяйственного продукта в 1957г. в Австралии было максимальным? [сельскохозяйственный продукт, объем производства в 1957г.];
б) Производство какого сельскохозяйственного продукта в 1953г. в Южной Америке превысило 5 млн. т.? [сельскохозяйственный продукт, объем производства в 1953 г., единица измерения].
Вариант 31. Основные показаеи развития промишленности России.
Вид продукции | Единицыизмерения | 1913 | 1928 | 1940 | 1945 |
Электроэнергия | млрд. кВт/г | 1.4 | 3.2 | 12.4 | 7.1 |
Минеральныеудобрения | тис. тонн | 80 | 135.7 | 434 | 128.7 |
Автомобилиі | тис. шт. | 80 | 150 | 800 | 200 |
Комбайны угольные | шт. | 200 | 400 | 500 | 120 |
Тракторы | тыс. шт. | 369 | 497 | 2218 | 335 |
а) Производствокакой продукции промышленности России в 1928г. было минимальным? [вид продукции, объемеепроизводствав 1928 году, единицыизмерения];
б) Производствокаких видов продукциипромышленности России в 1945г. было больше чем 150 тыс. шт.? [вид продукции, объемеепроизводства в 1945г., единицыизмерения].
Вариант 32. Посевные площадив (млн. га).
Культуры | 1913 | 1928 | 1940 | 1945 | 1953 |
Зерновые | 94.3 | 92.2 | 110.5 | 83.3 | 106.7 |
Кормовые | 3.1 | 5.7 | 7.7 | 8.1 | 8.3 |
Овощи | 1.5 | 2.8 | 3.3 | 1.8 | 1.3 |
Картофель | 2.1 | 3.9 | 18.1 | 10.2 | 18.7 |
а) Под какую культуру в 1928г. использовалась максимальная посевная площадь? [культура, ее посевная площадь в 1928 г.];
б) Посевные площадикаких культур в 1945г. превысили 10 млн. га? [наименование культуры, ее посевная площадь в 1945г.].
Вариант 33. Государственный бюджет Франции (млрд. фр).
Рік | Всего доходов | Налоговые доходы | Всего расходов | Военныерасходы |
1938/39 | 5 | 4.8 | 8.9 | 2.1 |
1949/50 | 26.5 | 18.1 | 19.6 | 10 |
1955/56 | 68.2 | 55.2 | 56.5 | 30.6 |
1956/57 | 71 | 63.3 | 69.4 | 33.3 |
1957/58 | 69.1 | 62.9 | 51.9 | 28.1 |
а) Вкаком году во Франциисобрали меньше всегоналогов? [год, налоговые доходы];
б) Вкаких годах военныерасходы Франции не превисили 20 млрд. фр.? [год, военные расходы].
Вариант 34. Показатели развития торговли.
Показатель | 1932 | 1940 | 1950 | 1958 |
Объем розничного товарооборота | 50.4 | 185.1 | 459.6 | 577 |
Число предприятий (тыс.) | 240.2 | 694 | 611 | 850 |
КОличествоработников (тыс.) | 1588 | 2266 | 1867 | 2947 |
Издержкиобращения (%) | 18.9 | 8.7 | 9.7 | 8.6 |
а) Какой показаель развития торговлиимел максимальное значение в 1940г.? [показатель, его значение в 1940г.];
б) Какие показатели развития торговли превысили значение 100 единиц в 1932г.? [показатель, его значение в 1932г., единицаизмерения].
Вариант 35. Структура добычи минерального топлива (в % в перерасчете на условноетопливо).
Вид топлива | 1954 | 1956 | 1958 |
Камянный уголь | 64.6 | 52.1 | 31.9 |
Нефть | 29.8 | 37.4 | 38.4 |
Природный газ | 4.5 | 5.3 | 23.3 |
Торф | 4.5 | 4.5 | 5.6 |
Горючие сланцы | 0.6 | 0.7 | 0.8 |
а) Добычакакого топлива в 1954г. была максимальной? [вид топлива, объемг его добычи в 1954г.];
б) Добычакаких видов минерального топлива в 1958г. была меншечем 30%? [вид топлива, объемего добычи в 1958 г.].
Вариант 36. Поголовье продуктивногоскота (на 100 га угодий)
Виды | 1940 | 1950 | 1955 |
Коровы | 9 | 10 | 8 |
Свиньи | 14 | 12 | 23 |
Овцы | 13 | 11 | 20 |
Козы | 2 | 4 | 3 |
а) Поголовьекакого вида продуктивногоскотав 1940г. было минимальным? [вид продуктивногоскота, его поголовье в 1940г.];
б) Поголовьекакого вида продуктивногоскотав 1950г. превысило 10 (на 100 га угодий)? [вид продуктивногоскота, его поголовье в 1950г.].
Вариант 37. Производство чугуна и стали (тыс. тонн).
Страны |
Чугун |
Сталь | ||
1938 | 1958 | 1938 | 1958 | |
Россия | 1945 | 13690 | 2088 | 11080 |
Украина | 1575 | 4774 | 1118 | 9510 |
Польша | 980 | 2864 | 1240 | 6631 |
Венгрия | 435 | 982 | 747 | 1527 |
Румыния | 232 | 837 | 384 | 1034 |
а) Вкакой стране в 1958г. произвелибольше всего чугуна? [страна, объемпроизводства чугуна в 1958г.];
б) Вкаких странах производство стали в 1938г. превысило 900 тыс. т.? [страна, объемпроизводства стали в 1938г.].
Вариант 38. Производствоэлектроэнергииимощность электростанций
Год |
Производство (млн. кВт/ч) |
Мощность (тыс. кВт) | ||
Всего | в т.ч. гидро | всего | в т.ч. ГЭС | |
1913 | 2945 | 45 | 1198 | 17 |
1928 | 5007 | 430 | 2905 | 131 |
1940 | 47309 | 5213 | 10192 | 1887 |
1945 | 42257 | 4941 | 13124 | 1452 |
1955 | 172225 | 24565 | 38243 | 7996 |
а) Вкаком годупроизводство всейэлектроэнергии было минимальным? [год, производствоэлектроэнергии (всего)];
б) Вкаких годах мощность ГЭС не превысила 1000 тис. кВт.? [год, мощность ГЭС.].
Вариант 39. Производство продукцииэлектротехнической промышленности
Вид продукции | Единицыизмерения | 1928 | 1940 | 1945 | 1958 |
Генераторыи турбины | тыс. кВт | 75 | 468 | 265 | 5186 |
Электродвигателимощностью свыше 100 кВт | тыс. шт. | 0.4 | 3.1 | 3.2 | 16.3 |
Электродвигателимощностью до 100 кВт | тыс. шт. | 32.8 | 259.3 | 110.7 | 2215 |
Холодильники бытовые | тыс. шт. | — | 3.5 | 0.3 | 359 |
а) Производствокакого вида продукцииэлектротехнической промышленности в 1928г. было максимальным? [вид продукции, объемеепроизводства в 1928г., единицаизмерения];
б) Производствокаких видов продукцииэлектротехнической промышленностив 1958г. было больше чем 10 тыс. штук? [вид продукции, объемеепроизводства в 1958г., единицыизмерения].
Вариант 40. Добыча минерального топлива
Года | Уголь (млн. т) | Нефть (млн. т) | Газ (млрд. м3) | Сланцы (тыс. т) |
1928 | 39.1 | 9.2 | 0,2 | 0,4 |
1930 | 45.5 | 13.6 | 0.5 | 0.3 |
1940 | 175 | 31.1 | 3.3 | 1562 |
1950 | 281 | 38 | 6.6 | 4710 |
а) Вкаком году добыли меньше всего угля? [год, объем добычи угля];
б) Вкаких годах добыли больше чем 20 млн. т. нефти? [год, объем добычи нефти].
3. Пример
Дана информация о странах мира в виде: название, столица, площадь (млн. кв. км) и численность населения (млн. чел.). Сформировать список тех стран, плотность населения которых превышает заданную. Об этих странах сообщить их название, столицу и плотность населения. Найти страну с минимальной площадью территории.
/* ====== РАБОТА С ТАБЛИЧНЫМИ ДАННЫМИ ========================== */
#include <stdio.h>
#include <stdlib.h>
#define N 100
#define LN 20
#define LC 15
#define LG_I 66
#define LG_V 51
main ()
{ struct country /* структурный тип для исходной таблицы: */
{ char name [LN+1]; /* название */
char capit [LC+1]; /* столица */
float area; /* площадь */
float chisl; /* численность */
};
/* ======= ИСХОДНЫЕ ДАННЫЕ====================================== */
int n; /* реальное количество стран */
struct country c[N]; /* исходная таблица */
float pl_z; /* заданнаяплотность населения */
/* ============ РЕЗУЛЬТАТЫ ===================================== */
struct
{ char name [LN+1]; /* название */
char capit [LC+1]; /* столица */
float pl; /* плотность населения */
} c_r[N]; /* таблица-результат */
int p; /* реальна количество країн у таблиці-результаті */
/* ========= ПРОМЕЖУТОЧНЫЕ ДАННЫЕ =============================== */
int i; /* индекс элемента таблицы */
float pl; /* плотность населения для і-й страны */
float ar_min; /* значение текущего минимума */
int n_min; /* номер элемента таблицы, соответствующего
текущему минимуму */
int pr; /* признак корректности введенных данных */
float r; /* змінна для введення даних із крапкою, що плаває */
/* відкреслювання при виводі вхідної таблиці: */
char sg_icx[LG_I+1]=
"-----------------------------------------------------------------";
/* відкреслювання при виводі таблиці-результату: */
char sg_vix[LG_V+1]=
"-------------------------------------------------";
/* ========= ПЕРЕВІРКА ОБМЕЖЕНЬ ================================ */
/* --------------- для кількості країн у таблиці --------------- */
do
{ printf ("Уведіть количество країн (не більш, ніж %d):", N);
scanf("%d",&n);
if (n<0 || n>N)
{ pr=1;
printf("Ви помилилися!\n");
}
else pr=0;
}
while(pr);
/* --------------- для элементов таблиці даних ----------------- */
printf("Уведіть дані про страны \n");
printf("%s\n", sg_icx);
printf("!NN! назва страны ! столиця !");
printf (" площа ! чисельність !\ n ");
printf ("% s \ n ", sg _ icx );
do
{ for ( i =0; i < n ; i ++)
{ printf ("! %d ", i+1);
scanf("%s", c[i].name);
scanf("%s", c[i].capit);
scanf("%f", &r); c[i].area=r;
scanf("%f", &r); c[i].chisl=r;
if (c[i].area<0 || c[i].chisl<0)
{ pr=1;
printf(" Ви помилилися ! Повторіть введення \n");
i--;
}
else pr=0;
}
}
while(pr);
printf("%s\n", sg_icx);
/* --------------- для заданої щільності населення ------------- */
do
{ printf(" Уведіть щільність населення :");
scanf("%f",&pl_z);
if(pl_z<0)
{ pr=1;
printf(" Ви помилилися ! Повторіть введення \n");
}
else pr=0;
}
while(pr);
/* ======== ЗДІЙСНЕННАЧАСТИНААЛГОРИТМУ ====================== */
n_min = -1;
ar_min = 1.0e6; /* площа , щоперевищуєусівідомі */
p = -1;
for(i=0; i<n; i++)
{ /* Країнизщільністю , щоперевищуєзадану */
pl=c[i].chisl/c[i].area;
if(pl>pl_z)
{p++;
strcpy(c_r[p].name,c[i].name);
strcpy(c_r[p].capit,c[i].capit);
c_r[p].pl=pl;
}
/* ======== Пошукстранызмінімальноюплощею ========= */
if (c[i].area<ar_min)
{ ar_min= c[i].area;
n_min=i;
}
}
/*============ ВИВІДРЕЗУЛЬТАТІВ ================================ */
/* Странызщільністюнаселення , щоперевищуєзадану */
if (p>-1)
{ printf(" Списоккраїнізплощеюнаселення , щоперевищує %f\n", pl_z);
printf("%s\n", sg_vix);
printf("!NN! назвастраны ! столиця ! щільність !\n ");
printf("%s\n",sg_vix);
for(i=0;i<=p;i++)
printf("!%2d!%-20s!%-15s!% 7.2f !\n", i+1,c_r[i].name,
c_r[i].capit, c_r[i].pl);
printf("%s\n",sg_vix);
}
else
printf(" Країнізщільністюнаселення , щоперевищує %f не
знайдено .\n", pl_z);
printf(" Країназмінімальноюплощеюнаселення : %s",c[n_min].name);
}
Дата: 2018-12-21, просмотров: 323.