Четверг, 09.01.2025
Pascal 4 All
[ · Новые сообщения · Участники · Правила форума · Поиск · RSS ]

 

  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Seqular, Pavel  

Интересные задачи!
aidjekДата: Вторник, 04.03.2008, 07:09 | Сообщение # 1
Новичок
Группа: Пользователи
Сообщений: 8
Репутация: 2
Замечания: 0%
Статус: Offline
Здравствуйте любители Turbo Pascal'я. Хочу представить на ваш суд паручку задач, несмотря на их простоту у них есть 1 условие - это НЕ использовать никакие процедуры, функции, операторы цикла FOR, WHILE, REPEAT, условные оператор IF и CASE OF, а только простые функции Turbo Pascal
Далее будет список задач:

№1
С клавиатуры считываются значения четырёх числовых переменных: a,b,с,d. Поменяйте между
собой по кругу слева направо значения этих переменных. Например, если: a=10, b=20, c=30,
d=40, то после замены получим a=40, b=10, c=20, d=30.

№2
Даны натуральные числа n и d. Вычислите а) 1+2+...+n;
б) 4+4+d+4+2d+4+3d+...+4+(n-1)d;
в) 5+5d+5d^2+5d^3+...5d^n-1.

№3
Напишите программу, которая вычисляет разность величин двух углов(выраженное в градус,
минутах и секундах).

№4
Дано целое число n. Вычислите сумму цифр этого числа.

№5
Дано целое число n. Выведите на экран "перевёртыш" числа n.

№6
Даны натуральные числа a и b, где 99<a<1000, b<10. Напишите программу, которая выводит на
экран запись числа a в системе счисления с основанием b.

№7
Дано натуральное число n, меньше 27. Напишите программу, которая выводит на экран букву,
порядковый номер которой в латинском алфавите равен n.

№8
Дана буква латинского алфавита. Напишите программу, которая выводит на экран порядковый
номер в латинском алфавите. Например, для буквы М получим 13.

№9
Банк принимает вклады с годовой прибылью в р%.
а) Какая сумма денег будет на счету через х лет, если сейчас положить в банк S0 долларов?
(р,х,S0 даны)
б) Через сколько лет на счету, на который положили S0 долларов, окажется Sf долларов? (х,р,Sf даны)

№10
Найдите наибольший показатель степень числа 16, который можно сохранить в переменную типа:
а) integer; b) word; c) LongInt.

№11
найдите минимальное количество купюр, формирующих заданную сумму леев. Примечание: в гос-ве находятся в обращении купюры достоинством в 100,50,20,10,5,1 долларов.

№12
Даны числа m и n. Не сравнивая их, выведите на экран меньшее из них.

№13
Даны числа m и n. Не сравнивая их, выведите на экран большее из них.

Кому интересно некоторые из них решены cool biggrin , жду ваших идей и предложений !!!

Добавлено (04.03.2008, 00:09)
---------------------------------------------
wink а куда же все любители Turbo Pascal потерялись ? или они настолько простые, я уже почти все закончил - некоторые работают, другие - ну почти работают!! Интересно было бы с кем-то их обсудить !


вот так неожиданно приходят Гос Экзамены !!!
 
AlexanderДата: Вторник, 04.03.2008, 09:59 | Сообщение # 2
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
какие у тебя не получаются? Просто лично мне нравится программирование под вунду, а не под DOS, тем более на паскале smile .

Скажем дружно- нафиг нужно!
 
SeqularДата: Четверг, 06.03.2008, 07:35 | Сообщение # 3
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
aidjek, Задачи правда интересные. Попробую порешать на досуге... А что является простыми функциями/процедурами паскаля? такие вещи как sqr?
Сколько можно использовать переменных?


Поддерживаю также проект сообщество молодых сисадминов
 
AlexanderДата: Четверг, 06.03.2008, 08:05 | Сообщение # 4
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
я думаю всё очень просто:
Code
asm
{код на асме}
end;

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


Скажем дружно- нафиг нужно!
 
aidjekДата: Пятница, 07.03.2008, 05:19 | Сообщение # 5
Новичок
Группа: Пользователи
Сообщений: 8
Репутация: 2
Замечания: 0%
Статус: Offline
2 Alexander, хехе низя так !!! как говорится Не все золото, что блестит. Уровень задач расчитан на учащихся 2 курса по специальности Информатика, вообще книга включает в себя разделы - каждый раздел определённое число задач, так вот эти задачи из 1 раздела - где происходит ВВЕДЕНИЕ В ЯЗЫК Turbo Pascal, вообще у меня их много - потому что в этом году сдаю госы, вот и мне 138 штук накидали для решения, вот поэтому и решил проверить себя, может кто что проверит !!!

2 Seqular, открываем любой учебник по Pascal'ю и смотрим - обычно в начале идут основные функции, применяемые в Turbo Pascale. Ниже представлю список, дабы не возникали какие то вопросы.

Насчёт решённых, в принципе они все решены более или менее, есть те в которых я уверен и те которые не очень:

Уверен в: 1, 3, 5, 9, 12, 13 - остальные значит принадлежат к другой категории, но наброски есть для всех ! happy

просто кое-где туплю, где просто не помню, а самое обидное учусь на Физика, Информатика 2 специальность, пожтому внимание ей сами понимаете уделялось не АхТи, реально в последний раз залезал в Pascal 2 года назад где-то, а тут ГОС экзамен и волей не волей приходиться! cry

Кстати задач просто Куча !!! кое какие решены, другие наполовину, ну конечно же есть и нерешённые ! wink

Если Администрация разрешит то каждую неделю могу вывешивать по нескольку штук решённых, ну и решенённых, может кто-то докумекается до их решения !!!

Вообщем дерзайте !!! smile

Кому не лень пишите в аську - информация в профайле smile

Но и форуме не забывайте люди же всё таки стараются !!!

Всем Спасибо кто откликнулся !

PS: Список разрешаемых функций:
=
<>
>
<
<=
>=
+
-
*
/
DIV
MOD
ABS(x)
SQR(x)
SQRT(x)
INC(x)
INC(x,y)
DEC(x)
DEC(x,y)
TRUNC(x)
ROUND(x)
INT (x)
FRAC(x)
SIN(x)
COS(x)
ARCTAN(x)
EXP(x)
LN(x)
NOT
AND
OR
XOR



вот так неожиданно приходят Гос Экзамены !!!
 
AlexanderДата: Пятница, 07.03.2008, 09:24 | Сообщение # 6
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
Quote
Уровень задач расчитан на учащихся 2 курса по специальности Информатика

Отлично, значит как минимум год я могу за программироваие не садится biggrin (я на 1-ом курсе)
Разобрал вторую задачу, т.к. ты толи не дорешал, толи не уверен, что правильно решил. У меня получилось так:
Quote
а) 1+2+...+n;

ну тут всё просто:
Code
Result:=n*n div 2 +Round(n/2);

Далее..
Quote
б) 4+4+d+4+2d+4+3d+...+4+(n-1)d;

Ну тут тоже нет ничего особенного:
Code
Result:=(n*n div 2 +Round(n/2)-n)*d+4*n;

И последний:
Quote
в) 5+5d+5d^2+5d^3+...5d^n-1.

Ну он даже проще второго, просто требует знания таких понятий как "экспонента" и "логарифм", благо они нам с восьмого класса известны:
Result:=5*(trunc(exp(n*ln(d))) div (n-1));
Возможно есть более быстрый вариант, но я+лист бумаги+ручка его не нашли, так что критикуйте wink .

Добавлено (07.03.2008, 02:24)
---------------------------------------------
aidjek, выкладывай свои "сомнительные" решения, а то обломно все задачи с нуля решать.


Скажем дружно- нафиг нужно!
 
aidjekДата: Пятница, 07.03.2008, 21:10 | Сообщение # 7
Новичок
Группа: Пользователи
Сообщений: 8
Репутация: 2
Замечания: 0%
Статус: Offline
спасибо насчёт №2 - довольно всё написано правильно, щас проверю в Pascale!!

вот тока проверил - всё получилось !! Спасибо.

Так ну давай разбираться. Начнём-с с №4:
Как я понимаю здесь нада сначала выделить каждую цифру в отдельности, а затем их сложить - но сколько не бьюсь получается только этот алгоритм:

Code
Program Aidjek;
uses crt;
var Result,n:integer;
Begin
clrscr;
readln(n);
Result:=(((((((n div 1000000 mod 10)+
                      n div 100000 mod 10)+
                      n div 10000 mod 10)+
                      n div 1000 mod 10)+
                      n div 100 mod 10)+
                      n div 10 mod 10)+
                      n mod 10);
writeln(Result);
readkey
End.

Меня смущает объём программы, вот и думаю нет ли какого нить другого алгоритма, поменьше, хотя знаешь меня и этот устроит, просто ради интереса так подумал !!


вот так неожиданно приходят Гос Экзамены !!!
 
AlexanderДата: Суббота, 08.03.2008, 02:13 | Сообщение # 8
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
killed убейте меня cry . Я пошёл искать самую крепкую стену wacko . Второй номер- это суммы прогрессий! Утешает одно, мой способ нахождения геометрической прогрессии для компа куда более экономный, т.к. не использует экспоненту и логарифм.
А про четвёртый пока ничего на ум не пришло wacko . Только код у тебя маленький, т.к. ЛонгИнт поддерживает значения до 2147483647 wink .


Скажем дружно- нафиг нужно!

Сообщение отредактировал Alexander - Суббота, 08.03.2008, 02:14
 
aidjekДата: Суббота, 08.03.2008, 11:54 | Сообщение # 9
Новичок
Группа: Пользователи
Сообщений: 8
Репутация: 2
Замечания: 0%
Статус: Offline
Да тут в коде не проблема, можно и дописать, в принципе я так понимаю что другого варианта и нету !!!

Насчёт 2 задачи - убивать тебя не буду, тока интересно кто из нас этого не заметил !

следующую задачу вывешу к обеду !!

2 Seqular переменные использовать можно на сколько хватит фантазии, в этом плане ЛИМИТА НЕТ !


вот так неожиданно приходят Гос Экзамены !!!

Сообщение отредактировал aidjek - Суббота, 08.03.2008, 11:56
 
AlexanderДата: Суббота, 08.03.2008, 20:08 | Сообщение # 10
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
Что касается четвёртого, то я так и не нашёл зависимости межну числом и суммой его цифр sad .
Только твой код желательно записать в более читаемом виде, а именно без скобок и первого mod'а(зачем брать остаток от деления на десять от числа, которое заведомо меньше 10 wacko ).
Для типов Word и Integer код будет таким:
Code
Result:=n div 10000+
                    n div 1000 mod 10+
                       n div 100 mod 10+
                          n div 10 mod 10+
                             n mod 10;


Скажем дружно- нафиг нужно!
 
aidjekДата: Суббота, 08.03.2008, 20:17 | Сообщение # 11
Новичок
Группа: Пользователи
Сообщений: 8
Репутация: 2
Замечания: 0%
Статус: Offline
Да думаю так будет лучше !!

Что насчёт "перевёртыша" ? придумал ?

Я использовал алгоритм с прошлой задачи!!

Если надо то могу выложить !


вот так неожиданно приходят Гос Экзамены !!!
 
AlexanderДата: Воскресенье, 09.03.2008, 20:42 | Сообщение # 12
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
Ничего путнего в голову не идёт angry . Выделение цифр числа без цикла-это бред. 99.9% что есть зависимость между числом и его цифрами, а если нет, то автору задачи место в дурке. Короче ничего я не придумал, а один и тотже "алгоритм" по 10 раз писАть не надо.

Скажем дружно- нафиг нужно!
 
aidjekДата: Воскресенье, 09.03.2008, 21:40 | Сообщение # 13
Новичок
Группа: Пользователи
Сообщений: 8
Репутация: 2
Замечания: 0%
Статус: Offline
хе насчёт АвторА ЗаЧёт - это наш ЗавКафедры Информатики - так что тут полностью с тобой согласен smile

Щас выложу мой алгоритм !!!

А вот насчёт 5-го - полний Бизнес!

вот алгоритм:

Code
Result:=(((((((((n mod 10*10+
                    n div 10 mod 10)*10+
                    n div 100 mod 10)*10+                    
                    n div 1000 mod 10)*10+
                    n div 10000 mod 10)*10+
                    n div 100000 mod 10)*10+
                    n div 1000000 mod 10)*10+
                    n div 10000000 mod 10)*10+
                    n div 100000000 mod 10)*10+
                    n div 1000000000 mod 10);
a:=trunc(ln(n)/ln(10))+1;
r:=Result div round exp(9-a)*ln(10)));
writeln(r);


вот так неожиданно приходят Гос Экзамены !!!
 
AlexanderДата: Воскресенье, 09.03.2008, 21:56 | Сообщение # 14
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
хех, вот что значит невнимательно прочитать условие biggrin . Задача просто вывести на экран!
Для типов Word и Integer это будет выглядить так:
Code
ReadLn(n);
WriteLn(n mod 10,
                 n div 10 mod 10,
                   n div 100 mod 10,
                      n div 1000 mod 10,
                         n div 10000);

Добавлено (09.03.2008, 14:56)
---------------------------------------------
P.S. Вспоминается очень известный случай, когда при приёме на работу программистов просили написАть программу, выводящую на экран сумму первых 100 чисел. Если переписать на паскаль, то верный вариант такой:

Code
begin
WriteLn(5050);
end;


Скажем дружно- нафиг нужно!

Сообщение отредактировал Alexander - Воскресенье, 09.03.2008, 21:57
 
aidjekДата: Понедельник, 10.03.2008, 02:57 | Сообщение # 15
Новичок
Группа: Пользователи
Сообщений: 8
Репутация: 2
Замечания: 0%
Статус: Offline
ну ты дал smile клёва заметил, мне просто препод типа сказанул что там много писанины smile

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

Добавлено (09.03.2008, 19:57)
---------------------------------------------

Quote
Даны натуральные числа a и b, где 99<a<1000, b<10. Напишите программу, которая выводит на
экран запись числа a в системе счисления с основанием b.

Заметь, здесь даны 2 числа, т.е. ты их вводишь с клавиатуры, а потом получаешь типа:
a = 5
b = 2
Ответ: 10

вот так то - модет есть какая то формула для этого перевода, потому что то что я знаю подходит только для перевода в 10 степень и сё !!


вот так неожиданно приходят Гос Экзамены !!!
 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Copyright MyCorp © 2025
Используются технологии uCoz
javascript:;" rel="nofollow" onclick="loginPopupForm(); return false;