Задачи (заочники, блок 1) власенко программирование все задачи


ЗАДАЧИ
по тематическому блоку №1
Задача 1. Написать программу, которая выводит на экран 50 первых членов последовательности:
а) 1, 5, 2, 4, 3, 6, 10, 7, 9, 8, … б) 1, 100, 99, 2, 98, 97, 96, 3, 95, 94, 93, 92, … в) 0, 10, 11, 20, 21, 22, 30, 31, 32, 33, …
Задача 2. Рассчитайте сумму первых 100 членов ряда, описываемого формулой: i / (100-i)! (i – номер элемента ряда; расчет значения факториала необходимо реализовать в виде самостоятельной функции.
Задача 3. Дана функция f = a * sin(w * t), где t – время в секундах. Параметры a и w – постоянные и вводятся с клавиатуры. Необходимо с использованием метода прямоугольников приближенно рассчитать значение интеграла функции f на интервале 0-50 секунд (шаг интегрирования – 0,1 секунды).
Задача 4. С клавиатуры вводится положительное целое число N. Необходимо вывести на экран все простые числа, не превышающие N.
Задача 5 (Выполняется без использования компьютера!). Массивы А и В из пяти целых заполнены единицами. Какими числами (указать в порядке следования) будут заполнены массивы после выполнения следующего фрагмента программы:
а)
i=0; k=4;
while (i<5)
{B[k] = 0;
for (j=0; j<i; j++)
{ B[k]+=A[j]; A[j]=B[k]; };
k--;
i++;
};
б)
i=0; s=0;
for (i=0; i<5; i+=2)
{
s += A[i];
j = 0;
while (i+j < 5) { B[i+j] = s; j++; }
}
Задача 6. В массиве A[10] задана последовательность чисел: 3, 4, 6, 2, 1, 7, 9, 0, 12, 2.
Описаны также целочисленные переменные I, K, X. Каков смысл (охарактеризуйте цель работы данного алгоритма словесно) и каков результат выполнения следующего фрагмента программы:
X = 0; K = 0;
for (I=0; I<3; X+=A[I], I++);
for (I=1; I < 8; I++)
{
S = A[I] + A[I+1] + A[I+2];
if (S > X)
{
X = S;
K = I;
}
};
for (I=0;I<3;I++)
printf (“%d ”, K+I);
Задача 7. Задан (и уже заполнен положительными числами) массив int A[50]. Необходимо написать фрагмент программы, который:
а) выведет на экран число, чаще всех остальных встречающееся в массиве А (для данного фрагмента программы построить блок-схему алгоритма);
б) рассчитает сумму чисел, являющихся квадратами каких-либо прочих элементов массива;
в) выведет числа из массива в виде таблицы, в которой номер строки будет соответствовать минимальному количеству десятков, которое превосходят соответствующие элементы массива. Например:
1) 8, 4, 6
2) 19, 17, 10, 12
3) 22, 28
. . .
Задача 8. С клавиатуры вводится текущая дата с указанием дня недели. Необходимо:
а) написать программу, в которой (после ввода текущей даты и дня недели) с клавиатуры будут циклически вводиться другие даты без указания дня недели (признак окончания ввода – нулевой год) и выводиться на экран соответствующие этим датам названия дней недели (даты – с годами от нуля до плюс бесконечности);
б) изменить программу, реализовав расчет дня недели в виде самостоятельной функции, получающей две даты и одно название дня недели в качестве входных параметров;
в) вывести на экран в табличной форме (столбцы – дни недели) календарь на текущий месяц.
Порядок представления дат в программе – произвольный.
Задача 9. Жесткий стержень АВ длиной L опирается вершинами о пол (вершина А) и стену (вершина В). Необходимо промоделировать изменение координаты Y вершины В в процессе скольжения стержня в вертикальной плоскости вдоль стены (в начальный момент вершина А отстоит от стены на расстояние b, после чего начинает двигаться по линии пола с постоянной скоростью V). Шаг моделирования принять равным Q = 1/24 с.
а) Необходимо изобразить схему алгоритма, позволяющего промоделировать процесс и его изменение в зависимости от заданных значений b, V и L;
б) Разработать программу, моделирующую процесс с учетом возможности изменения заданных значений b, V и L.
______________________________________________________
Y
B
X
A
b

Математическое описание процесса,
используемое при решении задачи:
XA = b + V t, YA = 0 =>
YB = (L2 - (b + V t)2)1/2
Задача 10. Опишите структуры данных, которые могут сохранить информацию о состоянии «кубика Рубика», и объясните, как будут фиксироваться данные о цвете и размещении клеток.
Задача 11. Площадка терминала, отведенная для размещения контейнеров с грузами, позволяет разместить 5 рядов по 40 контейнеров. Допускается складирование контейнеров в «один на другой», но не более, чем в 3 яруса. Каждый контейнер характеризуется номером, наименованиями отправителя и получателя (оба наименования – не более 30 символов). Необходимо:
а) описать структуры данных, необходимые для хранения информации о текущей загрузке площадки;
б) реализовать фрагмент программы, который позволит внести с клавиатуры все данные о размещении и характеристиках всех имеющихся контейнеров (учитывать, что терминал может быть загружен не полностью);
в) реализовать фрагмент программы, который позволит вывести на экран точные координаты всех контейнеров, имеющих заданную (введенную с клавиатуры) пару «отправитель – получатель»;
г) реализовать фрагмент программы, который производит расчет общего количества пустых позиций для контейнеров на терминале;
д) реализовать фрагмент программы, который сможет «ответить на вопрос»: существует ли возможность размещения всех имеющихся контейнеров «в один слой» (на 1-ом ярусе)?
е) предложить (с использованием динамических структур данных) вариант описания данных о загрузке терминала (такой, при котором количество блоков данных о характеристиках контейнеров будет строго соответствовать общему числу имеющихся контейнеров);
ж) используя структуры данных, предложенные для пункта (е), выполнить задания пунктов (в) и (г).
Задача 12. С клавиатуры вводится размерность динамического массива целых. После этого в программе необходимо создать указанный динамический массив, заполнить его числами с клавиатуры и выполнить следующие действия:
а) рассчитать, сколько элементов массива могли бы быть корректно представлены типом char;
б) поменять местами элементы массива, симметричные (по значению индекса) относительно среднего элемента;
в) вывести элементы массива в порядке убывания;
г) построить второй динамический массив, который необходимо (без лишних затрат динамической памяти) заполнить только отрицательными элементами первого массива.
Задача 13. Секция ячеек автоматической камеры хранения имеет планировку «4 ячейки в высоту – 15 ячеек в ширину». Каждая ячейка характеризуется информацией о занятости («занята/свободна») и об установленном четырехзначном коде (для занятых). Опишите структуры данных, необходимые для хранения информации по одной секции.
Задача 14. Заданы следующие описания:
struct A { int* xp[10]; int d[5]; int* k; };
struct B { A* xt; B* r; };

void main()
{ B *h, *p, *t, g[50]; … }
С использованием перечисленных переменных постройте и заполните (для всех целочисленных данных – единицами) структуры данных, изображенные на рис.1.

Рис.1. Структуры данных

Приложенные файлы

  • docx 9452408
    Размер файла: 66 kB Загрузок: 1

Добавить комментарий