Другие языки программирования и технологии
составить программы для паскаля, пожалуйста*
1.Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры: Пример: Введите целое число: 1234 Нет. Введите целое число: 1224 Да. 2.Ввести квадраты и кубы 10 чисел данной последовательности:1,2,4,7,11,16… Пример: 1 1 1 2 4 8 4 16 64 ... 46 2116 97336
1)Задача решается несколькими способами. Можно перевести число в строку и с помощью строковых функций (и процедур) определить, есть ли в ней одинаковые символы.
Еще один способ (на мой взгляд, чуть-чуть попроще) заключается в том, чтобы просто сосчитать количество каждой цифры в числе:
Пусть у нас есть массив col[0..9], который будет хранить количество цифр. Сосчитать количество каждой цифры в массиве ch можно так:
while (ch mod 10)>0 do begin
c:=ch mod 10;
ch:=ch div 10;
col[ c ]:=col[ c ]+1;
end;
Теперь нужно просто посмотреть, нет ли в массиве col числа >=2 . Если такое есть, то это будет означать, что цифра встретиласи два или более раза:
b:=false;
for i:=0 to 9 do if col[ i ]>=2 then b:=true;
if b then writeln ('да') else writeln('нет');
Кстати, не забудь обнулить массив col перед использованием.
2)В этой последовательности каждый следующий член равен сумме предыдущего члена и порядкового номера предыдузего члена
1
2=1+1
4=2+2
7=4+3
11=7+4
Очевидно, задача на циклы.
Цикл должен отсчитать 10 первых членов:
for i:=1 to 10 do begin...
Внутри мы должны сосчитать сам член, записать его и вывести квадрат и куб этого члена.
i - порядковый номер члена, а сам член предположим записываем в переменную ch. Тогда он вычисляется по формуле
ch:=ch+i-1;
Не забудь перед циклом указать начальное значение ch.
Еще один способ (на мой взгляд, чуть-чуть попроще) заключается в том, чтобы просто сосчитать количество каждой цифры в числе:
Пусть у нас есть массив col[0..9], который будет хранить количество цифр. Сосчитать количество каждой цифры в массиве ch можно так:
while (ch mod 10)>0 do begin
c:=ch mod 10;
ch:=ch div 10;
col[ c ]:=col[ c ]+1;
end;
Теперь нужно просто посмотреть, нет ли в массиве col числа >=2 . Если такое есть, то это будет означать, что цифра встретиласи два или более раза:
b:=false;
for i:=0 to 9 do if col[ i ]>=2 then b:=true;
if b then writeln ('да') else writeln('нет');
Кстати, не забудь обнулить массив col перед использованием.
2)В этой последовательности каждый следующий член равен сумме предыдущего члена и порядкового номера предыдузего члена
1
2=1+1
4=2+2
7=4+3
11=7+4
Очевидно, задача на циклы.
Цикл должен отсчитать 10 первых членов:
for i:=1 to 10 do begin...
Внутри мы должны сосчитать сам член, записать его и вывести квадрат и куб этого члена.
i - порядковый номер члена, а сам член предположим записываем в переменную ch. Тогда он вычисляется по формуле
ch:=ch+i-1;
Не забудь перед циклом указать начальное значение ch.
программы - для тебя Ну для препода. НА паскале.
1. Удобно сделать строковыми функциями. Преобразовать число в строку (функция str) и функцией mid разобрать её на символы.. .
2.Не понял
1. Удобно сделать строковыми функциями. Преобразовать число в строку (функция str) и функцией mid разобрать её на символы.. .
2.Не понял
Похожие вопросы
- помогите пожалуйста составить программу в паскале
- Помогите составить программу на паскале!
- найти все семизначные числа, которые делятся на 15 и записываются только цифрами 0 и 1. Составить программу на паскале
- Помогите пожалуйста составить программу на Паскале, используя оператор case
- Составить программу в паскаль
- Помогите пожалуйста я вас о4ень прошу !нужно составить программу в паскале....
- помогите составить программу в паскаль, плиз
- помогите составить программу на паскале используя массив:
- помогите составить программу на паскале, срочно..
- помогите доделать программу по паскалю пожалуйста