Другие языки программирования и технологии
что делает это программа
Program n1; Uses Crt; Var a,b:array[1..5] of byte; n,i,k,j,d:integer; begin Clrscr; write('‚ўҐ¤ЁвҐ ЇпвЁ§ 箥 зЁб«®: '); readln(n); a[5]:=n mod 10; a[4]:=n div 10 mod 10; a[3]:=n div 100 mod 100 mod 10; a[2]:=n div 1000 mod 1000 mod 100 mod 10; a[1]:=n div 10000 mod 10000 mod 1000 mod 100 mod 10; writeln('ђҐ§г«мв в ЇҐаҐбв ®ўЄЁ:'); for d:=1 to 4 do begin write(d,') '); for i:=1 to 5 do begin if i<5 then b:=a[i+1]; if i=5 then b:=a[1]; end; for j:=1 to 5 do begin write(b[j]); a[j]:=b[j]; end; writeln; end; write('„«п ўл室 ¦¬ЁвҐ Enter'); readln; end.
Язык Паскаль
readln(n); - считывает число целое (должно быть пятизначным, ина программа не имеет смысла)
a[5]:=n mod 10;
a[4]:=n div 10 mod 10;
a[3]:=n div 100 mod 100 mod 10;
a[2]:=n div 1000 mod 1000 mod 100 mod 10;
a[1]:=n div 10000 mod 10000 mod 1000 mod 100 mod 10;
Запиывает в ячейки массива цифры этого числа
Но код избыточный
a[5]:=n mod 10;
a[4]:=n div 10 mod 10;
a[3]:=n div 100 mod 10;
a[2]:=n div 1000 mod 10;
a[1]:=n div 10000 mod 10;
Делало бы тоже самое.
То есть если мы имеем число 12345
То будет массив (1,2,3,4,5)
for d:=1 to 4 do begin
write(d,') ');
for i:=1 to 5 do begin
if i<5 then b:=a[i+1];
if i=5 then b:=a[1];
end;
for j:=1 to 5 do begin
write(b[j]);
a[j]:=b[j];
end;
Эта часть сдвигает элементы массива и выводит их на экран 4 раза
Подробнее:
write(d,') '); выводит 1)
for i:=1 to 5 do begin
if i<5 then b:=a[i+1];
if i=5 then b:=a[1];
end;
записывает в массив b элементы массива a сдвинув на 1 по кругу (тоже можно оптимизировать)
Если было (1,2,3,4,5) то в b будет (2,3,4,5,1)
for j:=1 to 5 do begin
write(b[j]);
a[j]:=b[j];
end;
Одновременно выводит на экран элементы массива b и заполняет массив a такими же элементами (со сдвигом)
В результате на экране должно быть (при условии что в качестве исходных данных было бы число 12345)
1)23451
2)34512
3)45123
4)51234
readln(n); - считывает число целое (должно быть пятизначным, ина программа не имеет смысла)
a[5]:=n mod 10;
a[4]:=n div 10 mod 10;
a[3]:=n div 100 mod 100 mod 10;
a[2]:=n div 1000 mod 1000 mod 100 mod 10;
a[1]:=n div 10000 mod 10000 mod 1000 mod 100 mod 10;
Запиывает в ячейки массива цифры этого числа
Но код избыточный
a[5]:=n mod 10;
a[4]:=n div 10 mod 10;
a[3]:=n div 100 mod 10;
a[2]:=n div 1000 mod 10;
a[1]:=n div 10000 mod 10;
Делало бы тоже самое.
То есть если мы имеем число 12345
То будет массив (1,2,3,4,5)
for d:=1 to 4 do begin
write(d,') ');
for i:=1 to 5 do begin
if i<5 then b:=a[i+1];
if i=5 then b:=a[1];
end;
for j:=1 to 5 do begin
write(b[j]);
a[j]:=b[j];
end;
Эта часть сдвигает элементы массива и выводит их на экран 4 раза
Подробнее:
write(d,') '); выводит 1)
for i:=1 to 5 do begin
if i<5 then b:=a[i+1];
if i=5 then b:=a[1];
end;
записывает в массив b элементы массива a сдвинув на 1 по кругу (тоже можно оптимизировать)
Если было (1,2,3,4,5) то в b будет (2,3,4,5,1)
for j:=1 to 5 do begin
write(b[j]);
a[j]:=b[j];
end;
Одновременно выводит на экран элементы массива b и заполняет массив a такими же элементами (со сдвигом)
В результате на экране должно быть (при условии что в качестве исходных данных было бы число 12345)
1)23451
2)34512
3)45123
4)51234
самое важное - она не работает
Программа по идее должна последнюю цифру числа ставить на 1 место.
Т. е. если на вход будет введено число 12345, то получится 23451.
Но если подать 123, то будет выведено 01230.
Что не есть правильно!
И ещё если на вход подать 98765, то программа завершится аварийно, т. к. n - Integer.
Проще было бы написать вот такую программу:
var S : String; C : Char;
begin
Write('Введите натуральное число: '); ReadLn(S);
C := S[1]; Delete(S, 1, 1); S := S + C;
WriteLn(S);
end.
Гаргоэль не учёл одну особенность: максимальное значение типа Integer = 32767
Т. е. если на вход будет введено число 12345, то получится 23451.
Но если подать 123, то будет выведено 01230.
Что не есть правильно!
И ещё если на вход подать 98765, то программа завершится аварийно, т. к. n - Integer.
Проще было бы написать вот такую программу:
var S : String; C : Char;
begin
Write('Введите натуральное число: '); ReadLn(S);
C := S[1]; Delete(S, 1, 1); S := S + C;
WriteLn(S);
end.
Гаргоэль не учёл одну особенность: максимальное значение типа Integer = 32767
Формируется массив a[ i ], затем его элементы передают массиву b[ i ] и выводят на экран.
Ты где берешь такие коды? Запусти этот код в Паскале и увидишь, что она делает. Только так сможешь чему-то научиться.
Ты где берешь такие коды? Запусти этот код в Паскале и увидишь, что она делает. Только так сможешь чему-то научиться.
если не ошибаюсь, она выводит число по цифрам на экран Например, введено число 58966, на экране будет 5 8 9 6 6, ну вобщем давно я этим не занимался...
задачи решает, паскаль по-моему
Вроде паскаль, а что делает он.... хз...
Похожие вопросы
- Я не могу понять как делали первые программы и операционные системы
- Стоит ли учиться на программиста? Сложна ли работа? что делать? Только программы писать?
- Ребята что делает это программа? с расширением *bat
- В какой программе это делали.
- почему в техникуме (на специальности программисты) меня учат делать программы в командной строке
- ОЧЕНЬ НУЖНО!!!ПОМОГИТЕ!!!я слышал есть программа которая делает обратню хэш функцыю в МD5.
- программа visual studio 2010 что можно делать в этой программе. (краткий обзор программы для отчета по практике)
- На каких программах делают игры? Хочу сделать свою игру, и хочу узнать, что на каких программах и языках делают игры?
- а какой программе делают логотипы? подскажите, в какой программе делают логотипы?
- Ищу программу чтоб делать скриншоты