Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2008, 18:59   #1
Ananim-Pbl6ak
Пользователь
 
Регистрация: 28.10.2008
Сообщений: 77
Радость решение задачи в ТП7

Написать в ТР программу реализующие следующие действия:
Запросить и ввести с клавиатуры символ, если символ буква латинского алфавита то напечатать три буквы латинского алфавита следующие после нее в другом регистре.
Если введенный символ цифра то написать сумму цифр стоящих до и после заданной.
В противном случае сообщить что символ не буква и не цифра.
скелет вот такой я думаю, а как дальше не знаю


program bykBa_Cifra;
{Романов Антон ЭЭ 31-08}
var symbol:char;
begin
writeln('введите символ ');
readln(symbol);
if{Латинская буква }
then
begin
{действия по букве }
end
else
if{цифра} then
begin
{действия по цифре }
end
else writeln('символ не буква латинского алфавита и не цифра ')
readln
end.


помоги пожалуйста
Ananim-Pbl6ak вне форума Ответить с цитированием
Старый 29.10.2008, 02:29   #2
Min
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 239
По умолчанию

а если буква или цифра стоит на границе? к примеру "Z"....... какие следует считать идущими после неё?
Надо бы избавиться от привычки ставить многоточие.....
Min вне форума Ответить с цитированием
Старый 29.10.2008, 02:36   #3
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию

Min всё просто, Z = 90, вычитаем 25 и попадаем на 65 = A
вот что я накуралесил... глядим и тестируем.

Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;
Type
 TTypeSymbol = (smallbukva, cifra, bigbukva, none);

var
symbol:char;
i:integer;

Function Check(S:char):TTypeSymbol;
begin
result:=none;
if S in ['A'..'Z'] then result:=bigbukva;
if S in ['a'..'z'] then result:=smallbukva;
if S in ['0'..'9'] then result:=cifra;
end;

begin
writeln('введите символ ');
readln(symbol);
if Check(symbol)=smallbukva then  {Буква маленькая}
 begin
  for i:=1 to 3 do
   if ord(symbol)-32+i > 90 then
    Write(chr(ord(symbol)-32-(26-i)))
   else
    Write(chr(ord(symbol)-32+i));
 end;

if Check(symbol)=bigbukva then  {Буква большая}
 begin
  for i:=1 to 3 do
   if ord(symbol)+i > 90 then
    Write(chr(ord(symbol)+(6+i)))
   else
    Write(chr(ord(symbol)+32+i));
 end;

if Check(symbol)=cifra then  {Цифра}
 Write(strtoint(symbol)-1 + strtoint(symbol)+1);

if Check(symbol)=none then  {Ни то ни другое}
 Writeln('Вы ввели технический символ');

readln;
end.
О боже!... я же на delphi делал... ну... может TP7 поддержит синтаксис.
главное чтоб определился тип и были процедуры strtoint
тогда это
Код:
{$APPTYPE CONSOLE}

uses
  SysUtils;
можно убрать. А в остальном вроде работает как просили:
Цитата:
Сообщение от Ananim-Pbl6ak
Запросить и ввести с клавиатуры символ, если символ буква латинского алфавита то напечатать три буквы латинского алфавита следующие после нее в другом регистре.
Если введенный символ цифра то написать сумму цифр стоящих до и после заданной.
В противном случае сообщить что символ не буква и не цифра.
Всё гениальное - просто!

Последний раз редактировалось Air; 29.10.2008 в 03:40.
Air вне форума Ответить с цитированием
Старый 29.10.2008, 07:58   #4
rainbow
Форумчанин
 
Регистрация: 06.09.2008
Сообщений: 156
По умолчанию

Вот, я поправил, если чего то не устроит, пиши
Код:
program Project1;
uses
  crt;
var
symbol:char;
X,s,i:integer;

Function Check(S:char):string;
var
result:string;
begin
result:='none';
if S in ['A'..'Z'] then result:='bigbukva';
if S in ['a'..'z'] then result:='smallbukva';
if S in ['0'..'9'] then result:='cifra';
Check:=result;
end;

begin
writeln('Введите символ');
readln(symbol);
if Check(symbol)='smallbukva' then  {Буква маленькая}
 begin
  for i:=1 to 3 do
   if ord(symbol)-32+i > 90 then
    Write(chr(ord(symbol)-32-(26-i)))
   else
    Write(chr(ord(symbol)-32+i));
 end;

if Check(symbol)='bigbukva' then  {Буква большая}
 begin
  for i:=1 to 3 do
   if ord(symbol)+i > 90 then
    Write(chr(ord(symbol)+(6+i)))
   else
    Write(chr(ord(symbol)+32+i));
 end;

if Check(symbol)='cifra' then  {Цифра}
val(symbol,X,s);
 Write(X-1 + X+1);
if Check(symbol)='none' then  {Ни то ни другое}
 Writeln('Вы ввели технический символ');

readln;
end.
Ужас, как я устал от тупизны...
rainbow вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
решение задачи Claster Общие вопросы Delphi 17 16.09.2008 21:08
Решение задачи на c++ JOFRIF Помощь студентам 2 21.04.2008 00:35
Решение задачи на Си kisha Общие вопросы C/C++ 9 19.11.2007 23:31
Решение задачи на Pascal Progs Помощь студентам 4 03.11.2007 15:23
решение задачи TuNeR Microsoft Office Excel 2 15.10.2007 09:31