Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 03.12.2011, 18:19   #1 (permalink)
Лиия
Новичок
 
Регистрация: 30.11.2011
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите, пожалуйста, решить задачи в Паскале

1. Найти сумму четных цифр заданного числа.
2. Найти первую цифру заданного числа.
3. Найти сумму цифр целого числа, больших 5.
4. Сколько раз данная цифра встречается в целом числе?
5. Приписать по 1 в начало и в конец записи числа n. Например, было n=3456, стало n=134561,
6. Найти наименьшую цифру заданного числа.
7. Составить программу, позволяющую пользователю вводить с клавиатуры целые числа, пока пользователь не введет число, равное 100.
8. Числа Фибоначчи (fn) определяются формулами: f0=f1=l; fn=fn-1+fn-2 при n=2, 3,... Составить программу поиска f - первого числа Фибоначчи, большего m (m>l).
Лиия вне форума   Ответить с цитированием

Старый 03.12.2011, 18:19
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Темы которые подобны вашей уже были на нашем форуме

Помогите решить две задачи на Паскале
Помогите решить задачи в Паскале, пожалуйста
Помогите решить четыре задачи в Паскале
Помогите пожалуйста решить задачи
Помогите решить две задачи в турбо паскале

Старый 03.12.2011, 19:25   #2 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 25,791
Сказал(а) спасибо: 270
Поблагодарили 496 раз(а) в 158 сообщениях
Репутация: 86206
По умолчанию

Цитата:
Сообщение от Лиия Посмотреть сообщение
1. Найти сумму четных цифр заданного числа.
2. Найти первую цифру заданного числа.
3. Найти сумму цифр целого числа, больших 5.
4. Сколько раз данная цифра встречается в целом числе?
5. Приписать по 1 в начало и в конец записи числа n. Например, было n=3456, стало n=134561,
6. Найти наименьшую цифру заданного числа.
Код:
VAR
 i,Code:Integer;
 N,Dm,Ff,Ff_times:Byte;
 Sum_even,Sum_5:LongInt;
 S,S1:String;
 D:Array[1..255] of Byte;
BEGIN
 Writeln('Enter n (up to 255 figures):');
 Readln(S);
 Writeln;
 N:=Length(S);
 For i:=1 to N do
  VAL(S[i],D[i],Code);
 Sum_even:=0;
 For i:=1 to N do
  If (D[i] mod 2)=0 then Inc(Sum_even,D[i]);
 Writeln('The sum of even figures is ',Sum_even);
 Writeln;
 Writeln('First figure is ',D[1]);
 Writeln;
 Sum_5:=0;
 For i:=1 to N do
  If D[i]>5 then Inc(Sum_5,D[i]);
 Writeln('The sum of figures greater then 5 is ',Sum_5);
 Writeln;
 Write('Enter the figure to search for: ');
 Readln(Ff);
 Ff_times:=0;
 For i:=1 to N do
  If D[i]=Ff then Inc(Ff_times);
 Writeln(S+' contains "',Ff,'" ',Ff_times,' times');
 Writeln;
 S1:='1'+S+'1';
 Writeln(S1);
 Writeln;
 Dm:=9;
 For i:=1 to N do
  If D[i]<Dm then Dm:=D[i];
 Writeln('The minimal figure is ',Dm);
 Readln;
END.
Цитата:
Сообщение от Лиия Посмотреть сообщение
7. Составить программу, позволяющую пользователю вводить с клавиатуры целые числа, пока пользователь не введет число, равное 100.
Код:
VAR
 N:Longint;
BEGIN
 Repeat
  Readln(N);
 Until N=100;
END.
И не стыдно?

Цитата:
Сообщение от Лиия Посмотреть сообщение
8. Числа Фибоначчи (fn) определяются формулами: f0=f1=l; fn=fn-1+fn-2 при n=2, 3,... Составить программу поиска f - первого числа Фибоначчи, большего m (m>l).
Код:
VAR
 f,f_2,f_1,m:Longint;
BEGIN
 Write('m (>1)= ');
 Readln(m);
 f_2:=1;
 f_1:=1;
 Repeat
  f:=f_1+f_2;
  f_2:=f_1;
  f_1:=f;
 Until f>m;
 Writeln('f= ',f);
 Readln;
END.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 27.09.2012, 21:37   #3 (permalink)
Marishka
Новичок
 
Регистрация: 27.09.2012
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

помогите написать программу Числа Фибоначчи (Fn ) определяются формулами F0 =F1 =1; Fn =Fn-1 +Fn-2 при n=2,3,... Вычислить S - сумму всех чисел Фибоначчи, которые не превосходят 1000.
Marishka вне форума   Ответить с цитированием
Старый 28.09.2012, 10:25   #4 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 25,791
Сказал(а) спасибо: 270
Поблагодарили 496 раз(а) в 158 сообщениях
Репутация: 86206
По умолчанию

Цитата:
Сообщение от Marishka Посмотреть сообщение
помогите написать программу Числа Фибоначчи (Fn ) определяются формулами F0 =F1 =1; Fn =Fn-1 +Fn-2 при n=2,3,... Вычислить S - сумму всех чисел Фибоначчи, которые не превосходят 1000.
То есть с самого начала учебного года - настрой на полное, абсолютное, стопроцентное безделье? Постом выше - решение аналогичной задачи выложено, переделка под Ваши условия настолько элементарна, что проще и быть не может. Но нет - даже и этого не жАлаем, работайте за меня, дурачки, а я пошла тусоваться. Так? Нет, в ЭТОМ мы Вам, извините, не помощники!
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 28.09.2012, 16:28   #5 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 13,876
Записей в дневнике: 51
Сказал(а) спасибо: 106
Поблагодарили 128 раз(а) в 48 сообщениях
Репутация: 51141
По умолчанию

Ряд Фибоначчи состоит из целых чисел, получаемых путем сложения двух предыдущих. Таким образом, это бесконечная последовательность чисел: (1,1,2,3,5,8,13,21,34,55...). Для решения задачи на числа Фибоначчи нужно знать параметры окончания вычисления (условие), также обязательно нужно предусмотреть переменные для хранения 2 предыдущих чисел, чтобы вычислить следующее. Так как все задания можно подразделить на группы по результату обработки последовательности, то выделим следующие типы заданий:
1) Нахождение n-го числа последовательности.
2) Нахождение суммы или произведения чисел последовательности до выполнения некоторого условия.
3) Нахождение некоторого числа из последовательности, удовлетворяющего поставленному условию.

В любом случае, независимо от типа задания, первым шагом нужно сформировать саму последовательность. Первые числа получаются элементарно, путем присваивания двум переменным значения 1. Последующие числа получаются путем циклического вызова следующей последовательности команд:
число=пер1+пер2
пер1=пер2
пер2=число

В задании типа 1 этой последовательности команд обычно достаточно, так как после этого идет вывод полученного числа. Параметр цикла for позволяет выполнить вычисления нужное количество раз.

Однако если речь о заданиях типа 2 или 3, то перед генерацией следующего числа последовательности нужно проверить условие на истинность или выполнить другие вычисления (сложение или умножение) с предыдущими числами последовательности. Кроме того, во избежание ошибок вычислений результирующую переменную нужно инициализировать значением до цикла. Я обычно делаю сразу результат=1, а потом перехожу к циклу.

Таким образом, для задач 2 типа будет выполняться следующий ряд команд, исполняемых в цикле while:
результат=результат+пер2 (или результат=результат*пер2)
число=пер1+пер2
пер1=пер2
пер2=число

В качестве условия для выхода из цикла while можно использовать сравнение значения переменной пер2 (n-1 член последовательности) с ограничивающим значением.

Для заданий 3 типа команды внутри цикла будут немного измененными:
если пер2 не эталон то
{число=пер1+пер2
пер1=пер2
пер2=число
}

Естественно, что приведенное описание решения не охватывает всего разнообразия заданий и описывает только базовые структуры, но для умного человека оно будет неплохим подспорьем
AlexZir вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 23:14.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.