X : real (вещественный);
Если это массив, то array [0,2..0,5]
Type
Digits=array[0..9] of byte;
procedure RD(n:integer; var ad:Digits; var f:boolean);
{ заполняет массив количеством повторений цифр числа n
f=True, если хоть одна цифра повторяется }
var
i,d:byte;
begin
for i:=0 to 9 do ad[i]:=0;
f:=False;
while n>0 do begin
d:=n mod 10;
ad[d]:=ad[d]+1;
if ad[d]>1 then f:=True;
n:=n div 10
end;
end;
var
i,j,n,k:integer;
a:Digits;
f:boolean;
begin
for i:=1 to 2 do begin
Write('n = '); Read(n);
n:=Abs(n); { против ввода отрицательных }
RD(n,a,f);
if f then begin
Write('Встречаются больше одного раза цифры ');
for j:=0 to 9 do
if a[j]>1 then Write(j,' ');
Writeln
end
else Writeln('Все цифры в числе уникальны')
end
end.
<u>Пример</u>
n = 153632
Встречаются больше одного раза цифры 3
n = 1030041
Встречаются больше одного раза цифры 0 1
var
s,sr:string;
c:char;
i,j,n,p:byte;
begin
for i:=1 to 2 do begin
Write('Введите строку: '); Readln(s);
n:=Length(s);
sr:='';
for j:=1 to n do begin
c:=s[j];
if Pos(c,Copy(s,j+1,n-j))>0 then sr:=sr+c+' ';
end;
if Length(sr)>0 then Writeln('Встречаются больше одного раза символы ',sr)
else Writeln('Все символы в строке уникальны')
end
end.
<u>Пример</u>
Введите строку: информатика
Встречаются больше одного раза символы и а
Введите строку: проблема
Все символы в строке уникальны
В скобках указана степень числа
Например 10(-1) это десять в минус 1 степени
0*10(0)+9*10(-1)+8*10(-2)+6*10(-3)
Потому что именно так можно коротко и лаконично работать с массивом. Например, давайте решим такое задание: заполнить 100 элементов массива случайными числами. Без цикла while или for этот код займёт ни много, ни мало 100 строк и выглядело бы это вот так:
- arr[0] = rand();
- arr[1] = rand();
- ...
- arr[100] = rand();
Во-первых - это очень затрудняет читабельность кода. Во-вторых, если Вам придётся решать задачу, предполагающую ввод количества элементов, то Вы уже не сможете просто так написать N элементов, поскольку Вы не знаете, какое число даст программе человек. В таком случае Вам бы пришлось использовать рекурсивную функцию.
Вместо этого люди решили использовать цикл - то, что повторяет тело цикла i раз ("i - это итератор - счётчик цикла"). Давайте посмотрим, как будет выглядеть наша задача с циклом:
- for(int i = 0; i < 100; i++)
- {
- arr[i] = rand();
- }
В данном случае, как я писал выше, с каждой итерацией будет выполняться оператор присваивания случайного ("на самом деле псевдослучайного, но тема не об этом") числа элементу с индексом ("положением элемента в массиве"), равным номеру итератора.
| = ИЛИ
& = И. Т.е (сомики И меченосцы) ИЛИ гуппи
получается если сомики И меченосцы - 100 запросов,
гуппи 500
100+500=600
Ответ 600 запросов