Помогите решить задачи на паскале
10-11 класс
|
1)Дано четырехзначное число N. Проверить,будет ли сумма его цифр четным числом.
2)Ввести целое число n и, если оно трехзначное,найти его цифры, в противном случае напечатать сообщение"Не могу найти цифры"
Ну а я тогда решу их тебе,
1.
var n,b: integer;
begin
readln(n);
b:=n mod 10;
n:=n div 10;
b:=b+(n mod 10);
n:=n div 10;
b:=b+(n mod 10);
n:=n div 10;
b:=b + n;
if b mod 2 = 1 ten writeln('nechetnaya') else
writeln('chetnaya');
end.
Эту задачу можно было решить циклом, но я не знаю, знаешь ты циклы или нет.
2.
var n,a,b,c: integer;
begin
readln(n);
a:=n mod 10;
n:=n div 10;
b:=n mod 10;
c := n div 10;
if (c>0) and (c < 10) then writeln(a,' ',b,' ',c) else
writeln('Ne mogu naiti cifri');
end.
ты написал помочь решить,а не решить, поэтому только помогу. В первом случае разложить число на цифры можно через div и mod, делается это так div- это целочисленное деление, поэтому остается лишь целая часть, например 97 div 10 =
9.7, целое число 9 поэтому 9, если бы был mod то было бы 7, четные также ищешь, если Х mod 2=0 тогда число четное.
со вторым точно также интервал задаешь числами if (x<=999) and (x>=100) then .....
ну вроде все.
Другие вопросы из категории
2. При угадывании целого числа в диапазоне от 1 до N было получено 9 бит информации. Чему равно N?
Читайте также
Дана строка.Перенести последнюю букву слова в начало слова
Дана строка, удалить текст находящийся в скобках (вместе со скобками)
Я тут начал делать, вот только с удалением у меня ничего не получается, напишите как можно сделать
Вот как я делал:
program zd;
uses crt;
var s:string; i,l,n,t,y:integer;
begin
clrscr;
writeln('Введите строку');
readln(s);
l:=length(s);
for i:=1 to n do begin
if s[i]='(' then
t:=i; {здесь присваивал номер найденной скобки}
if s[i]=')' then
y:=i; {так же, как и выше}
delete (s,t,i); {у меня получается, что он удаляет с открывающей скобки и всё что находится вправо, а левая часть до скобки остается нетронутой}
end;
writeln('Данный результат =', s);
readln;
end.
уникальных чисел в массиве....заранее спасибо...
10 этапов соревнований «Формула-1». После 10 этапа участник с порядковым номером 4 выбыл из соревнований. Изменить массив так, чтобы в нем не было результатов бывшего гонщика.
Дан массив А1,.......Аn. найти максимальный и минимальный элементы и поменять их местами. Вот задача которую я делал:
program zadacha;
const
k=50;
var
a:array[1..k] of integer;
n,i:1..k;
c,v,max,min,prom:integer;
begin
for i:=1 to n do begin (здесь выскакивает ошибка о проверки диапазона)
a[i]:=random(50);
write(a[i],' ');
end;
max:=a[1];
min:=a[1];
for i:=1 to n do begin
if a[i]>max then begin
max:=a[i];
c:=i;
end;
if a[i]<min the begin
min:=a[i];
v:=i;
end;
end;
writeln('max=',max,'min=',min);
prom:=max; (вот с этой строчки и до конца помогите решить)
max:=min;
min:=prom;
writeln;
writeln('Полученный массив');
for i:=1 to n do
write(a[i], ' ');
readln;
end.