Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Задачи для обязательного решения




Для каждой задачи подготовить полусекретный набор тестовых данных – не для печати – для проверки решений детей

Дополнение для части 2 – обработка исключений

ОГЛАВЛЕНИЕ

Часть 1. Основы программирования и информатика

 

1.0. Разминка – введение в алгоритмы – элементарные алгоритмы

1.1. Геометрия

1.2. Последовательности

1.3. Массивы

1.4. Сортировки

1.5. Символьные строки (тексты)

1.6. Матрицы

1.7. Функции и рекурсия

1.8. Автоматы

1.9. Дополнительные задачи

 

В данном методическом пособии используются как классические задачи по программированию, так и задачи, взятые с сайтов по спортивному программированию.

 

Тема 1.0. Элементарные алгоритмы

 

Цель.

Изучение основных конструкций языка программирования. Умение построить алгоритм для решения задачи и записать его на языке программирования.

 

Основные понятия.

Решение задачи состоит в описании объектов и указания действий над ними с целью получения нужного результата.

Основной метод решения сложных задач - разбиение задачи на подзадачи - декомпозиция

Существует 3 механизма декомпозиции:

- линейная последовательность – задача разбивается на последовательность шагов (подзадач), которые выполняются друг за другом;

- ветвление по условию – задача разбивается на 2 или несколько параллельных подзадач и в зависимости от некоторого условия будет выполняться только одна из подзадач;

- многократное повторение – задача разбивается на последовательность одинаковых (подобных) подзадач. Эта подзадача будет выполняться несколько раз.

Эти 3 механизма используются при декомпозиции многократно до тех пор, пока задача не сведётся к очевидным (элементарным) действиям.

В каждой задаче (подзадаче) нужно уметь выделять объекты, над которыми будут выполняться действия.

Объекты характеризуются своим типом и в каждый момент времени имеют некоторое значение, которое хранится в оперативной памяти.

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

Структура простой программы:

подключения стандартных библиотек (#include)

определение главной функции (main). Внутри неё описываются объекты и операторы.

Ввод данных и печать результатов.

 

Ключевые слова.

Переменная, константа, Описание. Оператор. Программа. Оператор препроцессора #include.

 

ПРИМЕР.

Дано натуральное число. Напечатать все его делители в порядке возрастания.

 

Алгоритм.

Для решения этой задачи будем перебирать все натуральные числа от 1 до самого заданного числа. Те числа, на которые будет делиться без остатка заданное число, будем печатать.

 

Решение.

 

// C++

 

# include <iostream> // используется для подключения некоторых стандартных

# include <conio.h> // возможностей для ввода-вывода информации

 

using namespace std; // для использования некоторых стандартных имён

 

int main () // основная часть программы – главная функция

{

setlocale (LC_ALL, "RUS");

cout << "Вычисление делителей числа = ";

 

int n;

cin >> n;

 

for (int i=1; i <= n; i++)

if (n%i == 0)

cout << i << " ";

 

getch (); // задержка – смотреть результаты на экране

return 0;

}

 

// C#

 

using System;

 

class Program

{

static void Main (string [] args) // Main - обязательное имя

{

Console.Write ("Вычисление делителей числа = ");

 

int n = int.Parse (Console.ReadLine ());

for (int i=1; i <= n; i++)

if (n%i == 0)

Console.Write (" " + i);

 

Console.ReadKey ();

}

}

 

Дополнительные замечания.

Простой анализ программы показывает возможности ускорения в 2 раза. Во-первых, на числа 1 и n можно не делить, а из остальных проверять только числа от 2 до n/2.

 

Задачи для обязательного решения

 

1.0.1.1. Квадратное уравнение. Даны вещественные коэффициенты квадратного уравнения A*X^2 + B*X + C = 0. Коэффициент А!= 0. Написать программу для вычисления и печати корней этого уравнения. Ответ напечатать с точностью 2 знака после запятой. Если корней не существует, напечатать слово «НЕТ».

Исходные данные:

1 2 1

Результат:

-1 -1

 

1.0.1.2. Уравнение степени не выше 2-х. Даны вещественные коэффициенты A, B, C уравнения A*X^2 + B*X + C = 0. Некоторые коэффициенты могут быть нулями. Написать программу для вычисления и печати корней этого уравнения. Ответ напечатать с точностью 2 знака после запятой. Если корней не существует, напечатать слово «НЕТ». Если существует бесконечно много корней, напечатать «МНОГО».

Исходные данные:

0 2 1

Результат:

-0.50 -0.50

 

1.0.1.3. СЛАУ. Даны вещественные коэффициенты двух линейных алгебраических уравнений с двумя неизвестными: А1, В1, С1 и А2, В2, С2. Написать программу для вычисления и печати корней этой системы уравнений. Если корней не существует, напечатать слово «НЕТ». Если существует бесконечно много корней, напечатать «МНОГО». Уравнения имеют вид: A1*X + B1*Y = C1 и A2*X + B2*Y = C2.

Исходные данные:

1 1 2

2 2 4

Результат:

МНОГО

 

1.0.1.4. Факториал. Дано неотрицательное целое число K. Написать программу для вычисления и печати числа K!

Исходные данные:

Результат:

 

1.0.1.5. Число сочетаний. Даны натуральные числа N и M (0 <= M <= N). Написать программу нахождения и печати числа сочетаний из N по M по формуле .

Исходные данные:

5 2

Результат:

 

1.0.1.6. НОД. Даны натуральные числа А и В. Написать программу нахождения и печати наибольшего общего делителя этих чисел.

Исходные данные:

12 18

Результат:

 

1.0.1.7. НОК. Даны натуральные числа А и В. Написать программу нахождения и печати наименьшего общего кратного этих чисел.

Исходные данные:

12 18

Результат:

 

1.0.1.8. Простота. Дано натуральное число. Напечатать слово "ПРОСТОЕ", если это число является простым, т.е. не делится ни на какое число, кроме 1 и самого себя. В противном случае напечатать слово "СОСТАВНОЕ".

Исходные данные:

Результат:

СОСТАВНОЕ

 

1.0.1.9. Совершенство. Дано натуральное число. Напечатать слово "СОВЕРШЕННОЕ", если это число является совершенным, т.е. оно равно сумме всех своих собственных делителей (кроме самого себя). В противном случае напечатать слово "НЕ СОВЕРШЕННОЕ".

Например, число 4 не совершенное, т.к. 4!= 1+2. Число 6 - совершенное, т.к. 6 = 1+2+3.

Исходные данные:

Результат:

СОВЕРШЕННОЕ

 

1.0.1.10. Пифагоровы числа. Даны натуральные числа А и В. Написать программу для печати всех чисел из диапазона [A..B], которые представимы в виде суммы двух квадратов натуральных чисел. Например, число 17 = 1*1 + 4*4.

Исходные данные:

2 12

Результат:

2 5 8 10

 

1.0.1.11. Дано натуральное число N. Напечатать это число цифрами наоборот.

Исходные данные:

Результат:

 

1.0.1.12. EXP. Вычисление ряда 1 + x + x2/2! + x3/3! + … для заданного аргумента X с заданной точностью eps. Результат напечатать с 3 знаками после запятой.

Исходные данные:

1.0 0.001

Результат:

2.718

 

1.0.1.13. Написать программу для вычисления (1+z)(1+z+z2)(1+z+z2+z3) …(1+z+z2… +zn) для заданного вещественного числа z и натурального числа n. Результат напечатать с 3 знаками после запятой.

Исходные данные:

1.0 3

Результат:

24.0

 

1.0.1.14. Написать программу для вычисления значения (2+z)(3+2z+z2)(4+3z+2z2+z3) …(n+1+nz+(n-1)z2… +zn) для заданного вещественного числа z и натурального числа n. Результат напечатать с 3 знаками после запятой.

Исходные данные:

1.0 3

Результат:

180.0

 





Поделиться с друзьями:


Дата добавления: 2015-10-27; Мы поможем в написании ваших работ!; просмотров: 567 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Слабые люди всю жизнь стараются быть не хуже других. Сильным во что бы то ни стало нужно стать лучше всех. © Борис Акунин
==> читать все изречения...

2210 - | 2135 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.013 с.