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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2008, 01:13   #1
pakusya
Пользователь
 
Регистрация: 17.10.2008
Сообщений: 23
По умолчанию строки

объясните, пожалуйста, как решить задачи.
1. в зависимости от введенного символа англ. алфавита, вывести: например:
f
abcdef
bcdef
cdef
def
ef
f

я написала программу, но она выводит только первую строчку(abcdef).
а как дальше не могу понять.
2.
вывести в строку символы русского алфавита до введенного с клавиатуры символа. чтобы получилось так: аббвввггггддддд....

программа для вывода англ. алфавита у меня есть. что надо сделать, чтобы , программа выводила русский алфавит.
var j,l:integer;
i,k:char;
begin
write('k=');
readln(k);
l:=1;
for i:='a' to k do
begin
for j:=1 to l do
write(i);
l:=l+1;
end;
readln;
end.
3.с клавиатуры вводится строка. удалить из нее первый знак препинания. предварительно объявив множество знаков препинания.

объясните, пожалуйста, как объявить множество знаков препинания и как у далить первый знак препинания.

4 если мне надо найти в строке слова с только двумя буквами "о", подскажите как объявить в программе что букв две.
5и объясните мне пожалуйста ,как понять вот эту задачу, я ее вообще не понимаю: ввести строку символов. определить, является ли она записью десятичного числа кратного пяти.
pakusya вне форума Ответить с цитированием
Старый 29.11.2008, 01:49   #2
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

1.
Код:
read(c);
for i := 'a' to c do
  begin
  for j := i to c do
    write(j);
  writeln
  end;
{i, j, c символьного типа}
2. Будет работать во FreePascal'е
Код:
var i, c: char;
     k, j: integer;
     rus: set of char;

begin
rus := ['а','б','в','г','д']; {здесь нужно честно прописать все буквы русского алфавита}
read(c);
k := 1;
for i := '*' to c do
  if i in rus then
    begin
    for j := 1 to k do write(i);
    k := k + 1;
    end;
end.
Единственная трабла - буква ё в этой кодировке в конце. Правда я не знаю, она щас в наш алфавит входит или нет
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 29.11.2008, 01:54   #3
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

3.
Код:
var prep: set of char;
begin
prep := ['.', ',', '!', '?'] {ну и всё остальное что надо}
...
end.
Дальше считываем посимвольно и каждый символ проверяем на вхождение в множество: ch in prep. Если это первое такое вхождение, то символ не выводим и строчим дальше без остановок
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 29.11.2008, 01:58   #4
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

4. Считываем посимвольно и для каждого слова считаем, сколько раз в нём встретилась буква о. Слово кончилось - смотрим 2 вхождения или нет и сбрасываем счётчик
5. Надо проверить, что каждый символ является цифрой, а последний либо '5', либо '0'
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 30.11.2008, 14:13   #5
pakusya
Пользователь
 
Регистрация: 17.10.2008
Сообщений: 23
По умолчанию

большое спасибо за объяснения. я все поняла и программы работают нормально.
а можно спросить еще?
написала программу:файлы. но она такая громоздкая и не получается вывод.
const n=10;
var f:text; i,s,m,n,k,a:integer; c:=char;
assign(f,'first');
rewrite(f);
writeln(f,i);
readln(i);
writeln(f,s);
readln(s);
.......
write(f,a);
readln(a);
close(f);
begin
while(not eof(f)) do
begin
read(f,c); g:=1;
for i:=1 to h do begin
for g:=i+1 to h do
g:=g+1;
if g=2 then writeln(g,''); end;
...........
скажите,пожалуйста, что я сделала не так.
а задание такое:
создать файл, записать информацию:
135678
2333
34644
51111
6575
2
написать программу, результат:каждый элемент файла повторяется два раза через пробел.
pakusya вне форума Ответить с цитированием
Старый 30.11.2008, 15:34   #6
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Боюсь что тут много чего не так. Не говоря уж о синтаксисе могу отметить следующее:
1.
Код:
 
assign(f,'first');
rewrite(f);
writeln(f,i); 
{что вы хотите записать сюда? у переменной i значение не определено}
readln(i); 
{если вам надо считывать с клавы, то это нормально, но по условию я 
понял, что считывать надо из файла, а при вызове rewrite(f); writeln(f, i)
содержимое файла затирается и заменяется на i
}
2.
Код:
close(f);
begin
while(not eof(f)) do 
  begin
  read(f,c);
{файл только что был закрыт, а вы пытаетесь определить не достигли ли
мы конца и читаете из него}
Напишите условие получше, что откуда брать и куда писать, разберёмся
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 30.11.2008, 15:57   #7
pakusya
Пользователь
 
Регистрация: 17.10.2008
Сообщений: 23
По умолчанию

спасибо что ответили.
вообще задание такое :
создать файл FIRST , в который записать информацию:
1 3 5 6 7 8
2 3 3 3
3 4 6 4 4
5 1 1 1 1
6 5 7 5
2
написать программу, в результате которой каждый элемент файла повторяется два раза через пробел.
я просто не могу понять что и как и в каком порядке делать.

как создавать файлы я вроде понимаю, а как записывать в него и как с содержимым работать нет.
я просто учусь дистанционно и спросить нет у кого.
pakusya вне форума Ответить с цитированием
Старый 01.12.2008, 01:59   #8
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Что-то примерно такое
Код:
program prog1;

var f, g: text;
    i: integer;

begin
assign(f, 'first');
rewrite(f);
{открываем файл на запись}
writeln(f, '1 3 5 6 7 8');
{как вариант writeln(f, 1,' ',3,' ',5,' ',6,' ',7,' '.8)}
writeln(f, '2 3 3 3');
writeln(f, '3 4 6 4 4');
writeln(f, '5 1 1 1 1');
writeln(f, '6 5 7 5');
writeln(f, '2');
close(f);
{файл с исходными данными записали}
assign(f, 'first');
assign(g, 'second');
reset(f);
{f открываем на чтение}
rewrite(g);
{g открываем на запись}
while not eof(f) do
{пока не конец файла}
  begin
  while not eoln(f) do
  {пока не конец строки}
    begin
    read(f, i);
    write(g, i,' ',i,' ')
    {считываем очередной элемент и записываем его в новый файл дважды}
    end;
  writeln(g);
  {переводим в новом файле строку}
  readln(f);
  {переводим строку в файле, который читаем}
  end;
close(f);
close(g);
end.
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 01.12.2008, 02:42   #9
pakusya
Пользователь
 
Регистрация: 17.10.2008
Сообщений: 23
По умолчанию

спасибо. вроде все поняла , буду разбираться
pakusya вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
строки Limon34 Общие вопросы Delphi 5 29.10.2008 14:36
Строки в c++ Hottabych Общие вопросы C/C++ 7 07.10.2008 18:21
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27
Строки. Mr.User Помощь студентам 11 08.12.2007 07:00
как вывести строку поочередно сначала первая буква первой строки потом первая буква второй строки и т.д. vitalik007 Помощь студентам 1 25.09.2007 20:45