Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Pascal

Выпуск № 359
от 02.05.2007, 17:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 244, Экспертов: 66
В номере:Вопросов: 1, Ответов: 3


Вопрос № 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.
Ответ отправил: Крылов Александр Владимирович (статус: 3-ий класс)
Ответ отправлен: 26.04.2007, 20:42

Отвечает: Gh0stik
Здравствуйте, А.Е.В!

В свою очередь привожу еще два варианта решения этой задачи, причем функцию 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


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.51 (beta) от 27.04.2007
Яндекс Rambler's Top100

В избранное