Другие языки программирования и технологии
Задачка на Паскале
Дана строка символов a (string)Вывести алфавит строки. То есть все символы от a до z. Из строки должны быть удалены пробелы, запятые и др. В результате буквы не должны повторятся.Вот до чего дошел я:program z1;uses crt;vara,s,s1,s2:string;i,o,p:integer;beginclrscr;readln(a);for i:= 1 to length(a) dobeginif (ord(a)>ord('a')) and (ord(a)<ord('z'))>;end;writeln(s);readkey;end.В результате выдет строку из которой исключены все "левые" симолы. Дальше ступор. Уже устал и мозг не варит.
вот как вам дальше действовать
создайте массив символов array[1..26] of char
берете символ из строки через функцию берете его код и отнимаете от него 96 полученное число и есть номер ячейки массива куда нужно записать символ Вы его и записываете.
После того как Вы закончите всю стоку Вы получите массив символов используемых в строке и отсортированный по порядку
Ячейки массива которые останутся не заполненые это и есть те буквы которые не используются в данной строке
создайте массив символов array[1..26] of char
берете символ из строки через функцию берете его код и отнимаете от него 96 полученное число и есть номер ячейки массива куда нужно записать символ Вы его и записываете.
После того как Вы закончите всю стоку Вы получите массив символов используемых в строке и отсортированный по порядку
Ячейки массива которые останутся не заполненые это и есть те буквы которые не используются в данной строке
попробуй следующее:
...
var
c, res: set of char;
resStr: string;
item: integer;
ch: char;
...
res := [];
resStr := '';
c := ['a'..'z'];
for item := 1 to length(a) do
if a[item] in c then begin
res := res + [a[item]];
c := c - [a[item]];
end;
for ch := 'a' to 'z' do
if ch in res then resStr := resStr + ch;
...
var
c, res: set of char;
resStr: string;
item: integer;
ch: char;
...
res := [];
resStr := '';
c := ['a'..'z'];
for item := 1 to length(a) do
if a[item] in c then begin
res := res + [a[item]];
c := c - [a[item]];
end;
for ch := 'a' to 'z' do
if ch in res then resStr := resStr + ch;
Здесь не весь листинг
строка
if (ord(a)>ord('a')) and (ord(a)<ord('z'))>;
явно не полная
строка
if (ord(a)>ord('a')) and (ord(a)<ord('z'))>;
явно не полная
А так не пойдет ?:
uses crt;
var s:string;
c:char;
b:byte;
n: set of char;
begin
readln (s);
for b:=1 to length(s) do n:=n+[s [ b]];
for c:='a' to 'z' do if c in n then write (c);
readln;
end.
uses crt;
var s:string;
c:char;
b:byte;
n: set of char;
begin
readln (s);
for b:=1 to length(s) do n:=n+[s [ b]];
for c:='a' to 'z' do if c in n then write (c);
readln;
end.
Да точно не полная.. .
Но вот вариант как я понял
s:='' ;
for i:=1 to length(a)
if (ord(upcase(a))>=65) and (ord(upcase(a))<=91) and (pos( a, s )=0 ) then
s:=s+a
Wrtieln(s)
readkey;
Посмотри ситаксис функции POS() точно не помню ...
Но вот вариант как я понял
s:='' ;
for i:=1 to length(a)
if (ord(upcase(a))>=65) and (ord(upcase(a))<=91) and (pos( a, s )=0 ) then
s:=s+a
Wrtieln(s)
readkey;
Посмотри ситаксис функции POS() точно не помню ...
Похожие вопросы
- Задачка в Паскале
- Помогите, пожалуйста, решить задачку на паскале. Заранее благодарна.
- Задачка по Паскалю.
- Помогите с задачкой по Паскалю
- Помогите простенькие задачки по паскалю решить??)
- Люди помогите решить задачку!!!на паскале
- Задачка по Паскалю
- помогите, пожалуйста, с задачкой в Паскале
- Задачка на Паскале,чето не понял,что от меня хотят?)
- Нужна помощь в решении задачки на паскале )