Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
max_1296
2 / 2 / 3
Регистрация: 19.08.2013
Сообщений: 100
1

После задания 8.04 консоль закрывается, хотя впереди еще задания и readln-ы

23.04.2016, 13:16. Просмотров 267. Ответов 2
Метки нет (Все метки)

Добрый день, делаю несколько простых заданий связанных со строками, проблема в том что после задания 8.04 консоль закрывается хотя впереди еще задания и readln-ы , грешу на стринглист, думаю что с ним что то неправильно делаю, ощущение что за границу массива выхожу или к чему то несуществующему обращаюсь...

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
program Project2;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils, windows,Classes;
var
  a:Char;
  s,v:string;
  i,k,j:Integer;
  t:tstringlist;
begin
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
 
writeln('8.01: посчитать сколько раз встречается буква в строке');
write('введите строку:');
Readln(s);
write('введите букву:');
Readln(a);
k:=0;
for i:=1 to Length(s) do
begin
 if s[i]=a then k:=k+1;
end;
Writeln('буква '+a+' встречается ',k, ' раз');
Writeln('');
 
writeln('8.02 Заменить в данной строке все вхождения подстроки s на порядковый номер вхождения. Подстрока s вводится с клавиатуры.');
write('введите строку:');
Readln(s);
write('введите подстроку:');
Readln(v);
Writeln(''); //недоделал
 
writeln('8.04 В строке после каждого слова вставить запятую.');
write('введите строку:');
read(s) ;
t:=tstringlist.create;
t.Delimiter := ' ';
t.DelimitedText:=s;
s:='';
for i:=0 to t.Count-1 do
s:=s+t.strings[i]+', ';
writeln(s);
t.Free;
Writeln('');
//консоль закрывается , ответ вроде правильно выводит
Writeln('8.05 Дан список фамилий упорядочить их в алфавитном порядке.');
writeln('Введите список фамилий:')  ;
read(s);//считывания непроисходит
t:=TStringList.Create;
t.Sorted:=True;
t.Delimiter := ' ';
t.DelimitedText:=s;
for i:=0 to t.count-1 do
write(t[i]+' ') ;
 
 
read(s);
 
end.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2016, 13:16
Ответы с готовыми решениями:

Консоль закрывается сразу же после выполнения, хотя ReadLn на месте
Помогите понять, почему так, пожалуйста :-program Project4; {$APPTYPE CONSOLE} uses ...

Закрывается консоль, несмотря на readln();
Здравствуйте, появилась такая проблема program Project1; var i,j,k:integer; begin...

лаба. 3 задания, написать для каждого задания отдельную прогу.
5*. Известно, что с геометрической точки зрения углы, различающиеся в 2pi n раз, где n целое число,...

Четыре школьных задания, буду очень благодарен( задания прикреплены)
Первое задание решить при помощи двумерной таблицы. Буду очень благодарен.

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

2
Puporev
Модератор
56599 / 43286 / 29928
Регистрация: 18.05.2008
Сообщений: 102,973
23.04.2016, 14:54 2
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
var
  a:Char;
  s,v:string;
  i,k:Integer;
  t:tstringlist;
begin
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
 
writeln('8.01: посчитать сколько раз встречается буква в строке');
write('введите строку:');
Readln(s);
write('введите букву:');
Readln(a);
k:=0;
for i:=1 to Length(s) do
if s[i]=a then k:=k+1;
Writeln('буква '+a+' встречается ',k, ' раз');
Writeln;
 
writeln('8.02 Заменить в данной строке все вхождения подстроки s на порядковый номер вхождения. Подстрока s вводится с клавиатуры.');
write('введите строку:');
Readln(s);
write('введите подстроку:');
Readln(v);
Writeln; //недоделал
 
writeln('8.04 В строке после каждого слова вставить запятую.');
write('введите строку:');
readln(s) ;
t:=tstringlist.create;
t.Delimiter := ' ';
t.DelimitedText:=s;
s:='';
for i:=0 to t.Count-1 do
s:=s+t.strings[i]+', ';
writeln(s);
t.Free;
Writeln;
//консоль закрывается , ответ вроде правильно выводит
Writeln('8.05 Дан список фамилий упорядочить их в алфавитном порядке.');
writeln('Введите список фамилий:');
t:=TStringList.Create;
for i:=1 to 4 do
 begin
  readln(s);
  t.Add(s);
 end;
t.Sort;
writeln('Фамилии в алфавитном порядке');
for i:=0 to t.count-1 do
writeln(t[i]) ;
readln
 
end.
0
northener
пофигист широкого профиля
3453 / 2348 / 637
Регистрация: 15.07.2013
Сообщений: 13,961
23.04.2016, 14:56 3
А с чего бы начиная с задания 8.04 вместо Readln стал использовать Read?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2016, 14:56

Какие еще способы решения данного задания существуют?
Найти количество элементов, содержащихся между первым и последним минимальным. Если в наборе...

Проверка наличия задания и назначение задания
Вопрос как зделать так чтоби ето задания после повторно запуска *.bat проверяло существует ли даное...

Консоль закрывается после открытия
Здравствуйте. Искал помощи по всему интернету,попал на ваш форум) Есть исходники...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru