Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Паскаль, символы и строки (http://www.tehnari.ru/f41/t52631/)

Абай 03.06.2011 10:59

Паскаль, символы и строки
 
Дана строка, изображающая арифметическое выражение вида
«<цифра>§<цифра>§: : :§<цифра>», где на месте знака операции «§»
находится символ «+» или «¡» (например, «4+7¡2¡8»). Вывести значе-
ние данного выражения (целое число).

Абай 03.06.2011 11:01

Дана строка, изображающая арифметическое выражение вида "<цифра>+-<цифра>+-...+-<цифра>", где на месте знака операции "+-" находится символ "+" или "-"(например, "4+7-2-8").Вывести значение данного выражения(целое число).

Дано предложение. Зашифровать ее по этому правилу- поместив вначале все символы, расположенные на нечетных позициях строки. а затем, в обратном порядке, все символы, расположенные на нечетных позициях(например "Программа" превратится в "ргамамроП"). Расшифровать ее.

Vladimir_S 03.06.2011 17:14

Цитата:

Сообщение от Абай (Сообщение 531414)
Дана строка, изображающая арифметическое выражение вида "<цифра>+-<цифра>+-...+-<цифра>", где на месте знака операции "+-" находится символ "+" или "-"(например, "4+7-2-8").Вывести значение данного выражения(целое число).

Код:

VAR
 S:String;
 i,d:Byte;
 Sum,Code:Word;
BEGIN
 Writeln('Enter the string:');
 Readln(S);
 Val(S[1],Sum,Code);
 For i:=1 to (Length(S) div 2) do
  begin
  Val(S[2*i+1],d,Code);
  If S[2*i]='+' then Inc(Sum,d) else Dec(Sum,d);
  end;
 Writeln('Sum= ',Sum);
 Readln
END.

Цитата:

Сообщение от Абай (Сообщение 531414)
Дано предложение. Зашифровать ее по этому правилу- поместив вначале все символы, расположенные на нечетных позициях строки. а затем, в обратном порядке, все символы, расположенные на нечетных позициях(например "Программа" превратится в "ргамамроП"). Расшифровать ее.

Прежде всего, попрошу повнимательнее относиться к формулировкам задач - думаете, делать нам нечего, как только в Ваших ляпах разбираться? Хорошо хоть пример приведен.
Код:

VAR
 S,S1,S2:String;
 C_even,C_odd:Array[1..128] of Char;
 i,N_odd,N_even:Byte;
BEGIN
 Writeln('Enter the string S:');
 Readln(S);
 Writeln;
 N_even:=Length(S) div 2;
 If (Length(S) mod 2)=0 then N_odd:=N_even else N_odd:=N_even+1;
 For i:=1 to N_even do
  C_even[i]:=S[2*i];
 For i:=1 to N_odd do
  C_odd[i]:=S[2*i-1];
 S1:='';
 Writeln('Encoded:');
 For i:=1 to N_even do
  S1:=S1+C_even[i];
 For i:=N_odd downto 1 do
  S1:=S1+C_odd[i];
 Writeln(S1);
 Writeln;
 S2:='';
 N_even:=Length(S1) div 2;
 N_odd:=Length(S1)-N_even;
 For i:=1 to N_even do
  C_even[i]:=S1[i];
 For i:=N_even+N_odd downto N_even+1 do
  C_odd[N_even+N_odd-i+1]:=S1[i];
 Writeln('Decoded:');
 For i:=1 to N_even do
  begin
  S2:=S2+C_odd[i];
  S2:=S2+C_even[i]
  end;
 If N_odd>N_even then S2:=S2+C_odd[N_odd];
 Writeln(S2);
 Readln
END.



Часовой пояс GMT +4, время: 04:17.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.