Вопрос № 84363: Уважаемые эксперты помогите мне сделать, чтобы выводило не шесть чисел, а любое количество цифр.должна работать фукция lenght copy
uses crt;
var X,Y,code: integer;
S: string;
i:integer;
a:array [1..6] of integer;
begin<br...
Вопрос № 84.363
Уважаемые эксперты помогите мне сделать, чтобы выводило не шесть чисел, а любое количество цифр.должна работать фукция lenght copy
uses crt;
var X,Y,code: integer;
S: string;
i:integer;
a:array [1..6] of integer;
begin
clrscr;
writeln ('S');
readln(S);
for i:=1 to 6 do
begin
val(copy (S,i,1),a[i],code);
end;
X:=a[1]+a[2]+a[3];
Y:=a[4]+a[5]+a[6];
if X=Y then writeln ('счастливое число') else writeln ('не счастливое)ж
readln;
end.
Отправлен: 26.04.2007, 19:45
Вопрос задал: А.Е.В (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Menand
Здравствуйте, А.Е.В!
Должно работать, но нет возможности проверить (откомпилировать)
uses crt;
var X,Y,code: integer;
S: string;
i:integer;
a:array [1..100] of integer; //ну не для любого.. а только короче 100 знаков...
begin
clrscr;
writeln ('S');
readln(S);
for i:=1 to length(S) do
val(copy (S,i,1),a[i],code);
for i:=1 to ( length(S) div 2) do
begin
X:=X+a[i];
Y:=Y+a[length(S)+1-i];
end;
if X=Y then writeln ('счастливое число') else writeln ('не счастливое)ж
readln;
end.
Ответ отправил: Menand (статус: 10-ый класс)
Ответ отправлен: 26.04.2007, 20:27
Отвечает: Крылов Александр Владимирович
Здравствуйте, А.Е.В!
Код:
program happy;
uses crt;
var
chr:array[1..200] of char //вместо 200 можно поставить другое число, больше
a,b,x,i,temp,err:integer;
begin
clrscr;
a:=0;
b:=0;
writeln('Введите количество цифр в билете');
readln(x);
for i:=1 to x do read(chr[i]);
for i:=1 to x div 2 do
begin
val(chr[i],temp,err);
a:=a+temp;
val(chr[x-i+1],temp,err);
b:=b+temp
end;
if a=b then writeln('счастливый билет') else writeln('не счастливый');
readln;
end.
В свою очередь привожу еще два варианта решения этой задачи, причем функцию copy() использовать не нужно!!!
Обращаю Ваше внимание на то что во-первых я использую меньше переменных чем мои предшественники, а во втором примере в цикле выполняется только две операции.. :)
Вариант №1. uses crt;
var s:string;
x,code,i,c:integer;
begin
clrscr;
readln(s); x:=0;
for i:=1 to length(s) div 2 do
begin
val(s[i],c,code);
inc(x,c);
val(s[length(s)-i+1],c,code);
dec(x,c);
end;
if x=0 then writeln('Lucky') else writeln('UnLucky');
readln;
end.
Вариант №2. uses crt;
var s:string;
x,code,i,c:integer;
begin
clrscr;
readln(s); x:=0;
for i:=1 to length(s) div 2 do
begin
inc(x,ord(s[i]));
dec(x,ord(s[length(s)-i+1]));
end;
if x=0 then writeln('Lucky') else writeln('UnLucky');
readln;
end.
Good Luck!!!
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессионал) Украина, Славянск Организация: Славянский государственный педагогический университет (Кафедра алгебры) ICQ: 289363162 ---- Ответ отправлен: 26.04.2007, 22:19