- •Тема 1.Тема 1. Среда Builder Введение
- •Свойства компонентов
- •События
- •Менеджер проектов
- •1.1.1.4. Сохранение проекта
- •Практические задания Задание 1. Организация ввода-вывода стандартных типов данных
- •Задание 2. Программирование линейных алгоритмов
- •12 Вариант.
- •Задание 3: программирование линейных алгоритмов (продолжение)
- •Программирование разветвляющихся алгоритмов Пример составления программы с разветвленной структурой
- •Практические задания Задание 1: нахождение значения функции по условию
- •Задание 2: нахождение значения переменной по условию
- •Целочисленная арифметика
- •1.3.Примеры алгоритмов
- •Практические задания Задание 1: сумма цифр трехзначного числа
- •Задание 2: перевод копеек в рубли
- •Задание 3: счастливый билет
- •Программирование циклических алгоритмов Пример составления программы с циклом
- •Практические задания Задание 1
- •Задание 2
- •1 Вариант.
- •2 Вариант.
- •3 Вариант.
- •Задание 3: перевод числа из десятичной системы счисления
- •Программирование вложенных циклов
- •Пример программы с вложенным циклом
- •Практическое задание
- •Программирование разветвляющихся и циклических алгоритмов Примеры задач
- •Практические задания Задание 1: перевод блок-схемы в код программы
- •Задание 2: нахождение суммы бесконечного ряда
- •Структурированные типы данных: одномерные массивы
- •Примеры программ с использованием массива
- •Практические задания Задание 1. Задание элементов одномерного массива и анализ
- •Задание 2. Работа с последовательностью чисел
- •Задание 3. Определение экстремумов в массивах
- •Самостоятельное задание: сортировка массива
- •Самостоятельное задание: поиск элемента в массиве
- •Структурированные типы данных: двумерные массивы Пример программы с использованием матриц
- •Практические задания Задание 1. Определение элементов новой матрицы через элементы заданной матрицы
- •Задание 2. Упорядочивание в матрицах фиксированных строк или столбцов
- •Структурированные типы данных: строки
- •Примеры программ с использованием строки
Практическое задание
Используя механизм вложенных циклов, организовать вывод следующей таблицы символов.
Методические указания
Разработать алгоритм решения задачи, используя механизм вложенных циклов.
Границу внешнего цикла задать как константу.
Проверить работоспособность алгоритма на константе большей размерности, чем приведена в условии задачи.
Варианты заданий
1 вариант 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 |
2 вариант 5 5 5 5 5 6 6 6 6 7 7 7 8 8 9 |
3 вариант 0 1 0 2 1 0 3 2 1 0 4 3 2 1 0 |
4 вариант 6 5 4 3 2 5 4 3 2 4 3 2 3 2 2 |
5 вариант 5 0 0 0 0 0 4 0 0 0 0 3 0 0 0 2 0 0 1 0 1 |
6 вариант 5 4 3 2 1 0 5 4 3 2 0 5 4 3 0 5 4 0 5 0
|
7 вариант 1 1 2 3 4 5 2 1 2 3 4 3 1 2 3 4 1 2 5 1 |
8 вариант 5 1 2 3 4 5 4 1 2 3 4 3 1 2 3 2 1 2 1 |
9 вариант 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 1 2 3 4 5 |
10 вариант 1 1 1 2 1 3 1 4 2 1 2 2 2 3 3 1 3 2 4 1 5 |
11 вариант 5 5 5 5 5 1 1 1 1 0 0 0 0 5 5 5 5 1 1 1 0 0 0 5 5 5 1 1 0 0 5 5 1 0 5 |
12 вариант 1 0 2 2 0 0 3 3 3 0 0 0 4 4 4 4 0 0 0 0 5 5 5 5 5 0 0 0 0 0 |
Программирование разветвляющихся и циклических алгоритмов Примеры задач
Пример 1
Разберем пример перевода блок-схемы в код языка Паскаль. Пусть дана следующая блок-схема:
Определим вид алгоритма: 3 блок – содержит проверку условия, следовательно алгоритм является разветвленным, оператор 7 содержит проверку условия, после чего есть возвратная стрелка на оператор 3, следовательно алгоритм содержит цикл.
Параметром цикла является переменная Т. В блоке 2 определяется ее начальное значение (Т=1), в блоке 6 – дается приращение (+1), в блоке 7 – проверка на выход из цикла (≤10). По данному представлению делаем вывод о том, что для кодирования данного вида цикла используем оператор FOR-TO.
Для проверки условия блока 3 используем условный оператор IF, причем, блок 4 выполняется только если условие 3 выполнено, а блок 5 должен выполнится в любом случае, делаем вывод, что для кодирования используем форму оператора IF-THEN.
Итак, имеем следующую программу:
//---------------------------------------------------------------------------
#include <vcl.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
int c =2, b =0,t = 1;
for (t; t <= 10; t++)
{
if (c % 3 == 0)
{
b += 2 * t;
b++;
c++;
}
else
{
b++;
c++;
}
}
printf ("t = %2d b = %2d c = %2d",t,b,c);
getch();
return 0;
}
//---------------------------------------------------------------------------
Результат работы программы:
T=10 B=40 C=12
Пример 2
Вычислить приближенно значение бесконечной суммы с заданной точностью ε. Определить, за сколько шагов были произведены вычисления. Получить результат для разных степеней точности.
Примечание: Точность считается достигнутой, если очередное слагаемое оказалось по модулю меньше, чем ε.
//---------------------------------------------------------------------------
#include <vcl.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
do
{
printf("\nVvrdite pogreshnost'\n");
float eps =0.0;
scanf ("%f", &eps);
printf("Vvedite argument\n");
float x = 0.0;
scanf ("%f", &x);
int k = 0;
float a = -1;
float summa = a, fact =1.0;
while (fabs(a) > eps)
{
k++;
fact = 1;
for (int i = 1; i <= 2*k; fact *= i, i++ );
a = 1;
for (int i = 1; i <= 4*k; a *= (x/3), i++);
a /= fact;
if ((k+1) % 2 != 0)
{
a = -a;
}
summa += a;
}
printf ("Resultat = %10.5f poluchen za %3d shaga (ov)\n", summa,k);
}
while (getch() != 27);
return 0;
}
//---------------------------------------------------------------------------
Результат работы программы:
Введите погрешность
0.001
Введите аргумент
2
Результат= 0.90285 получен за 3 шаг.
Введите погрешность
0.01
Введите аргумент
2
Результат= 0.90286 получен за 2 шаг.
Введите погрешность
0.1
Введите аргумент
2
Результат= 0.90123 получен за 1 шаг.
