IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> логические задачки на паскале
webgirl
сообщение 4.12.2004 16:56
Сообщение #1


Гость






вычислить следующую сумму и определить, при каком n произойдет переполнение строки
1^2+2^2+3^2+...+n^2

составить программу, кот. возводит число в куб, используя следующее свойство:
1^3=1
2^3=3+5
3^3=7+9+11
4^3=13+15+17+19 (эту я вроде с грехом пополам сделала, но такой бред получился)

сост программу для:
(((((1?2)?3)?4)?5)?6)=35

заранее очень вам благодарна rolleyes.gif
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 5.12.2004 22:33
Сообщение #2


Гость






webgirl
Насчет второй - вверху приведен текст, который, как видно, и хотел препод... Третью я решил ОЧЕНЬ нетривиально - боюсь, что она преподу тоже не понравится:

Код

type
 myFunc = function(a, b: integer):integer;

function myAdd(a, b: integer): integer; far;
 begin myAdd := a + b end;
function mySub(a, b: integer): integer; far;
 begin mySub := a - b end;
function myMult(a, b: integer): integer; far;
 begin myMult := a * b end;
function myDiv(a, b: integer): integer; far;
 begin myDiv := a div b end;

const
 nums: array[1 .. 6] of integer =
   (1, 2, 3, 4, 5, 6);
 result = 35;

type
 oper = (opPlus, opMinus, opMult, opDiv);
const
 fs: array[oper] of myFunc =
   (myAdd, mySub, myMult, myDiv);
 ch: array[oper] of char =
   ('+', '-', '*', '/');

function f(a1, a2, a3, a4, a5: oper): integer;
 begin
   f := fs[a5](fs[a4](fs[a3](fs[a2](fs[a1](nums[1], nums[2]), nums[3]), nums[4]), nums[5]), nums[6]);
 end;

var
 s1, s2, s3, s4, s5: oper;
 found: boolean;
begin
 for s1 := opPlus to opDiv do
   for s2 := opPlus to opDiv do
     for s3 := opPlus to opDiv do
       for s4 := opPlus to opDiv do
         for s5 := opPlus to opDiv do
           If f(s1, s2, s3, s4, s5) = result then
             begin
               found := true;
               writeln('was found:');
               writeln('1'+ch[s1]+'2'+ch[s2]+'3'+ch[s3]+'4'+ch[s4]+'5'+ch[s5]+'6');
             end;
 if not found then
   writeln('was not found:')
end.

blink.gif

А над второй подумаю...
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 15:54
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"