Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal] Функции Процедуры


Автор: Dimon5 21.4.2008, 16:31
С клавиатуру вводятся пять различных символо. Если код символа чётный, то изменить этот символ на следующий за ним, иначе на предыдущий (в таблице ASCII) ( использовать массив из символов).Плиз помогите.очень нужно а то всю неделю болел, а в методичке ничё похожего. Представления даже неимею что тут делать.

Автор: THandle 21.4.2008, 16:39
Код

program Project1;

var
  i : integer;
  chars : array [1..5] of char;
begin
  for i := 1 to 5 do
    begin
      writeln('Enter next element: ');
      readln(chars[i]);
      if (ord(chars[i]) mod 2) = 0 then
        inc(chars[i])
      else
        dec(chars[i]);
      writeln('New symbol: ', chars[i]);
    end;
  readln;
end.

 

Так?

Автор: Dimon5 21.4.2008, 17:06
Спасибо за ответ. 
Так или нет незнаю, как я понял её нужно написать два раза с помощью 
1)функций. 
2)процедур.

И если честно не понял смысл и  как она работает .

Автор: THandle 22.4.2008, 08:58
Собственно, не понятно ЧТО тут вообще записывать с помощью процедур и функций.
Ладно, сейчас что-нибудь накатаю.

Вот с процедурами:
Код


program Project1;

var
  chars : array [1..5] of char;

procedure FillChars;
var
  i : integer;
begin
  for i := 1 to 5 do
    begin
      writeln('Enter next element: ');
      readln(chars[i]);
    end;
end;

procedure Rep;
var
  i : integer;
begin
  for i := 1 to 5 do
    begin
      if (ord(chars[i]) mod 2) = 0 then
        inc(chars[i])
      else
        dec(chars[i]);
    end;
end;

procedure WriteResult;
var
  i : integer;
begin
  for i := 1 to 5 do
    writeln('New symbol: ', chars[i]);
end;

begin
  FillChars;
  Rep;
  WriteResult;
  readln;
end.



Вот с функциями:

Код

program Project1;

var
  i : integer;
  chars : array [1..5] of char;

function Mod2(num : integer) : boolean;
begin
  if (ord(chars[i]) mod 2) = 0 then
    Mod2 := true
  else
    Mod2 := false;
end;

begin
  for i := 1 to 5 do
    begin
      writeln('Enter next element: ');
      readln(chars[i]);
      if Mod2(i) then
        inc(chars[i])
      else
        dec(chars[i]);
    end;
  for i := 1 to 5 do
    writeln('New symbol: ', chars[i]);
  readln;
end.

 

Больше не нашел куда тут функции прикрутить.


Цитата(Dimon5 @  21.4.2008,  18:06 Найти цитируемый пост)
И если честно не понял смысл и  как она работает . 


Так возьми книгу и изучай Паскаль. smile 

Автор: Dimon5 22.4.2008, 13:41
Цитата

Так возьми книгу и изучай Паскаль.


Да непомешало бы на выходных почитать.

Ну большое спасибо за всё.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)