Другие языки программирования и технологии
Помогите пожалуйста с паскалем!!!
Сделайте пожалуйста 3 задачки на языке паскаль! 1) дано натуральное число: - сколько четных цифр в данном числе? - верно ли, что данное число начинается на А, а заканчивается на В ( А и В вводятся с клавиатуры) 2) найти все 4-х значные числа в которых ровно 2 одинаковых цифры 3) найти количество различных цифр данного натурального числа
Задачки то не совсем тривиальные, как может показаться на первый взгляд!
1 задача:
var
S : String;
A, B, N : Byte;
begin
Write('Введите натуральное число: '); ReadLn(S);
Write('Введите через пробел цифры A и B: '); ReadLn(A, B);
for N := 1 to Length(S) do if Not(S[N] in ['0'..'9']) then
begin WriteLn('В числе недопустимый символ ', S[N]); Halt; end;
if Not((A < 10) and (B < 10)) then
begin WriteLn('A и B должны быть цифрами. '); Halt; end;
WriteLn('Цифр в числе ', Length(S));
if (S[1] = Chr(A + 48)) and (S[Length(S)] = Chr(B + 48)) then
WriteLn('Верно: Число начинается на ', A, ' и заканчивается на ', B)
else WriteLn('Не верно: Число начинается на ', S[1], ', а заканчивается на ', S[Length(S)]);
end.
2 задача:
function Odinakovyh2(N : Integer) : Boolean;
var
N1, N2, N3, N4 : Byte;
begin
N1 := N mod 10; N := N div 10;
N2 := N mod 10; N := N div 10;
N3 := N mod 10; N4 := N div 10;
// если уже есть 2 одинаковых, то других одинаковых быть не может
if N1 = N2 then Odinakovyh2 := Not((N1 = N3) or (N1 = N4) or (N2 = N3) or (N2 = N4) or (N3 = N4))
else if N1 = N3 then Odinakovyh2 := Not((N1 = N4) or (N2 = N3) or (N2 = N4) or (N3 = N4))
else if N1 = N4 then Odinakovyh2 := Not((N2 = N3) or (N2 = N4) or (N3 = N4))
else if N2 = N3 then Odinakovyh2 := Not((N2 = N4) or (N3 = N4))
else if N2 = N4 then Odinakovyh2 := Not(N3 = N4)
else if N3 = N4 then Odinakovyh2 := True
else Odinakovyh2 := False;
end;
var
N, K : Integer;
begin
K := 0;
for N := 1000 to 9999 do
if Odinakovyh2(N) then
K := K + 1;
WriteLn('от 1000 до 9999 чисел с одинаковыми только двумя цифрами ', K);
end.
3 задача:
var
S : String;
N : Byte;
M : set of '0'..'9';
C : Char;
begin
Write('Введите натуральное число: '); ReadLn(S);
M := [];
for N := 1 to Length(S) do if Not(S[N] in ['0'..'9']) then
begin WriteLn('В числе недопустимый символ ', S[N]); Halt; end
else M := M + [S[N]];
N := 0;
for C := '0' to '9' do if C in M then Inc(N);
WriteLn('В числе различных цифр ', N);
end.
1 задача:
var
S : String;
A, B, N : Byte;
begin
Write('Введите натуральное число: '); ReadLn(S);
Write('Введите через пробел цифры A и B: '); ReadLn(A, B);
for N := 1 to Length(S) do if Not(S[N] in ['0'..'9']) then
begin WriteLn('В числе недопустимый символ ', S[N]); Halt; end;
if Not((A < 10) and (B < 10)) then
begin WriteLn('A и B должны быть цифрами. '); Halt; end;
WriteLn('Цифр в числе ', Length(S));
if (S[1] = Chr(A + 48)) and (S[Length(S)] = Chr(B + 48)) then
WriteLn('Верно: Число начинается на ', A, ' и заканчивается на ', B)
else WriteLn('Не верно: Число начинается на ', S[1], ', а заканчивается на ', S[Length(S)]);
end.
2 задача:
function Odinakovyh2(N : Integer) : Boolean;
var
N1, N2, N3, N4 : Byte;
begin
N1 := N mod 10; N := N div 10;
N2 := N mod 10; N := N div 10;
N3 := N mod 10; N4 := N div 10;
// если уже есть 2 одинаковых, то других одинаковых быть не может
if N1 = N2 then Odinakovyh2 := Not((N1 = N3) or (N1 = N4) or (N2 = N3) or (N2 = N4) or (N3 = N4))
else if N1 = N3 then Odinakovyh2 := Not((N1 = N4) or (N2 = N3) or (N2 = N4) or (N3 = N4))
else if N1 = N4 then Odinakovyh2 := Not((N2 = N3) or (N2 = N4) or (N3 = N4))
else if N2 = N3 then Odinakovyh2 := Not((N2 = N4) or (N3 = N4))
else if N2 = N4 then Odinakovyh2 := Not(N3 = N4)
else if N3 = N4 then Odinakovyh2 := True
else Odinakovyh2 := False;
end;
var
N, K : Integer;
begin
K := 0;
for N := 1000 to 9999 do
if Odinakovyh2(N) then
K := K + 1;
WriteLn('от 1000 до 9999 чисел с одинаковыми только двумя цифрами ', K);
end.
3 задача:
var
S : String;
N : Byte;
M : set of '0'..'9';
C : Char;
begin
Write('Введите натуральное число: '); ReadLn(S);
M := [];
for N := 1 to Length(S) do if Not(S[N] in ['0'..'9']) then
begin WriteLn('В числе недопустимый символ ', S[N]); Halt; end
else M := M + [S[N]];
N := 0;
for C := '0' to '9' do if C in M then Inc(N);
WriteLn('В числе различных цифр ', N);
end.
А чего вы хотите? Ничего не делать и за счет умных выучиться, а потом начать умными командовать?
В армию раз учиться не хочешь!
Куда вы торопитесь? Вся ночь впереди! До утра успеете решить, а если не успеете - то что ж, значит, кодить это не ваше - и все-таки в армию!
В армию раз учиться не хочешь!
Куда вы торопитесь? Вся ночь впереди! До утра успеете решить, а если не успеете - то что ж, значит, кодить это не ваше - и все-таки в армию!
200руб. за все задачи
Похожие вопросы
- Помогите пожалуйста с паскалем...я его только осваиваю(
- Помогите пожалуйста с паскалем!
- Помогите пожалуйста по паскалю.
- Помогите пожалуйста с паскалем)))
- Дан двумерный массив C(m,n). Найти произведение элементов, больших среднего значения. Помогите пожалуйста!!! На паскале
- Помогите пожалуйста на Паскале
- Помогите пожалуйста на Паскале или С#
- Помогите, пожалуйста. Программирование паскаль, однонаправленные списки.
- Ребят помогите пожалуйста. Паскаль, Paskal
- Помогите пожалуйста с Заданием по Паскалю!