русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Примеры решения задач


Дата добавления: 2014-02-04; просмотров: 1952; Нарушение авторских прав


1. Даны натуральные числа n и k. Составить программу вычисления выражения

1k + 2k + … + nk

Для вычисления указанной суммы целесообразно использовать оператор For с управляющей переменной I, изменяющейся от 1 до n. В теле цикла вычисляется очередное значение y=Ik и накапливается искомая сумма s=s+y.

Var n, k, y, I, s, j: Integer;

Begin

WriteLn (‘Введите n и k ‘);

ReadLn (n, k);

s: = 0;

For i: = 1 To n Do Begin

y: = 1;

For j: = 1 To k Do y: = y*i;

s: = s + y

End;

WriteLn (‘Сумма: ‘ , s)

End.

 

2. Сложим все цифры какого-либо числа. Получим новое число, равное сумме всех цифр исходного числа. Продолжим этот процесс до тех пор, пока не получим однозначное число (цифру). Оно называется цифровым корнем исходного числа. Например, цифровой корень числа 34697 равен 2(3+4+6+9+7=29; 2+9=11; 1+1=2). Составьте программу нахождения цифрового корня натурального числа.

Var n, k, s: LongInt;

Begin

WriteLn (‘Введите число‘); ReadLn (n);

s: = n;

While s>9 Do Begin

k : = s ; s : = 0;

Repeat

s : = s + k mod 10;

k : = k div 10

Until k = 0

End;

WriteLn (‘Цифровой корень числа ‘,n,’ равен ‘,s)

End.

3. Старинная задача. Сколько можно купить быков, коров и телят, если бык стоит 10 рублей, корова – 5 рублей, теленок – полтинник (0,5 рубля), при условии, что на 100 рублей надо купить 100 голов скота.

Решение: обозначим через b – количество быков, k – количество коров, t – количество телят. После этого можно записать два уравнения:

10b + 5 k + 0,5t = 100 и b + k + t = 100

Преобразуем их:

20b + 10k + t = 200 и b + k + t = 100

На 100 рублей можно купить:

§ не более 10 быков, т.е. 0 ≤ b ≤ 10,

§ не более 20 коров, т.е. 0 ≤ k ≤ 20,

§ не более 200 телят, т.е. 0 ≤ t ≤ 200.

Таким образом, получаем:



 

Var b, k, t: Integer;

Begin

For b: = 0 To 10 Do

For k: = 0 To 20 Do

For t: = 0 To 200 Do

If (20*b+10*k+t=200) and (b+k+t=100) Then

WriteLn ( ‘быков ‘ ,b, ‘ коров ‘ ,k, ‘ телят ‘ ,t)

End.

Сколько раз будет проверяться условие в данной программе (сколько раз будет выполняться оператор If)? Переменная b принимает 11 различных значений (от 0 до 10), для каждого значения переменной b переменная k изменяется от 0 до 20, а для каждого значения переменной k переменная t изменяется от 0 до 200.

Таким образом, условие будет проверяться 11 · 21 · 201 = 46431 раз. Но если известно количество быков и коров, то количество телят можно вычислить по формуле

t = 100 – (b + k)

и цикл по переменной t можно исключить.

Program My 9_3;

Var b, k, t: Integer;

Begin

For b: = 0 To 10 Do

For k: = 0 To 20 Do Begin

t: = 100 – (b + k) ;

If (20*b+10*k+t=200) Then WriteLn ( ‘быков ‘ ,b, ‘ коров ‘ ,k, ‘ телят ‘ ,t)

End

End.

В этой программе условие повторяется 11 · 21 = 231 раз. Попробуйте еще уменьшить количество проверок.

4. Написать программу, которая находит все четырехзначные числа abcd (a, b, c, d – цифры числа, причем все они различны), для которых выполняется условие:

ab – cd = a + b + c + d

Другими словами, разность чисел, составленных из старших цифр числа и из младших, должна быть равна сумме цифр числа.

Эту задачу можно решать разными способами. Например, можно перебирать все четырехзначные числа и проверять выполнение условия. Попробуем сократить перебор: из равенства

10 · a + b – (10 · c + d) = a + b + c + d

получаем

9 · (a – c ) = 2 · (c + d)

или (a – c) / (c + d) = 2 / 9,

a = c + 2, d = 9 – c и 0 ≤ c ≤ 7.

 

Var a, b, c, d: Integer;

Begin

For c: = 0 To 7 Do Begin

a: = c + 2; d: = 9 - c;

For b: = 0 To 9 Do

If (b<>c) and (b<>a) and (b<>d) Then WriteLn (a, b, c, d)

End

End.

5. Дано натуральное число, кратное 3. Найдем сумму кубов цифр данного числа. Получим новое число. Применим к нему такое же преобразование и т.д. Оказывается, что любая последовательность чисел сходится к числу 153.

Program My 9_5;

Var n, m, t, s, q: LongInt;

Begin

WriteLn (‘Введите число, оно умножается на 3, далее для полученного

числа строится последовательность ‘);

ReadLn (n);

m: = 3 * m; Write (m, ‘ ‘ );

Repeat

s : = 0; t : = m;

While m > 0 Do Begin

q: = m mod 10;

s: = s + q * q * q;

m: = m div 10

End;

m: = s;

Write (m, ‘ ‘ )

Until m = t;

ReadLn

End.

Массивы

 

Одним из важных инструментов программиста является возможность работы с массивами переменных.

Массив - набор однотипных данных, хранящихся вместе и имеющих общее имя.

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

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



<== предыдущая лекция | следующая лекция ==>
Вложенные циклы | Одномерные массивы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.164 сек.