Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 05.10.2017
Сообщений: 53
1
Delphi 6-7

Нужно чтобы цифры не выводились в консоль, как это реализовать?

26.06.2018, 12:54. Показов 703. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
program Project1;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils,
  Windows;
 
type
  //Сведения о слове.
  TWord = record
    //Само слово.
    SWord : String;
    //Количество обнаружений слова в тексте.
    Cnt : Integer;
  end;
  //Хранилище уникальных слов.
  TVault = record
    //Количество слов в хранилище. - Количество значимых элементов массива.
    Len : Integer;
    //Массив сведений о словах. Длина этого массива
    //может быть большей или равной Len.
    Arr : array of TWord;
  end;
 
//Добавляет слово в массив хранилища Vault. При этом, если добавляемое
//слово уже присутствует в массиве, тогда счётчик этого слова увеличивается
//на единицу. Если добавляемое слово пока не присутствует в массиве, тогда
//это слово записывается в массив и его счётчик устанавливается равным единице.
procedure AddToVault(var aVault : TVault; const aWord : String);
const
  //Величина приращения длины массива.
  Capacity = 20;
var
  i : Integer;
begin
  with aVault do begin
    //Просматриваем массив - проверяем,
    //есть ли уже в нём такое слово.
    i := 0;
    while i < Len do begin
      //Если такое же слово найдено, то увеличиваем
      //его счётчик на единицу и выходим из цикла.
      if Arr[i].SWord = aWord then begin
        Inc( Arr[i].Cnt );
        Break;
      end;
      Inc(i);
    end;
    //Если в предыдущем цикле слово не найдено, то при выходе
    //из цикла будем иметь равенство i = Len. В этом случае
    //добавляем слово в массив и устанавливаем счётчик этого
    //слова равным единице. Индекс добавляемого слова,
    //равен i.
    if i = Len then begin
      //Если количество значимых элементов массива в настоящий момент
      //равно длине массива, это означает, что в массиве нет места
      //для добавления нового элемента. Поэтому, в этом случае,
      //наращиваем длину массива. Длину массива увеличиваем
      //на велечину Capacity.
      if Len = Length(Arr) then
        SetLength(Arr, Len + Capacity)
      ;
      //Так как мы добавляем в массив новое слово, то количество значимых
      //элементов массива становится на единицу больше.
      Inc(Len);
      //Записываем в массив данные нового элемента (слова).
      Arr[i].SWord := aWord;
      Arr[i].Cnt := 1;
    end;
  end;
end;
 
const
  //Разделители слов.
  D = ['.', ',', ':', ';', '!', '?', '-', ' ', #9, #10, #13];
var
  S, SWord : String;
  i, Pos1, Len : Integer;
  Vault : TVault;
begin
  //Переключение консоли на кодовую страницу CP1251 (Win-1251).
  //Если после переключения русские буквы показываются неверно, следует
  //открыть системное меню консольного окна - слева вверху окна консоли.
  //И выбрать: Свойства - закладка "Шрифт" - выбрать шрифт: "Lucida Console".
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
 
  repeat
    Writeln('Введите текст:');
    Readln(S);
 
    Vault.Len := 0;
 
    //Извлекаем слова и добавляем их в хранилище Vault.
    //Добавление слов в хранилище Vault производится через процедуру AddToVault().
    //Эта процедура спроектирована так, что при записи формируется массив
    //уникальных слов со сведениями о количестве обнаружений каждого слова.
    Len := Length(S);
    Pos1 := 0;
    for i := 1 to Len do begin
      //Пропускаем разделители.
      if S[i] in D then Continue;
      //Отслеживаем начало слова.
      if (i = 1) or (S[i - 1] in D) then Pos1 := i;
      //Отслеживаем конец слова.
      if (i = Len) or (S[i + 1] in D) then begin
        //Добавляем слово в массив.
        SWord := AnsiUpperCase( Copy(S, Pos1, i - Pos1 + 1) );
        AddToVault( Vault, SWord );
      end;
    end;
 
    Writeln('Перечень слов которые присутствуют по одному разу:');
    for i := 0 to Vault.Len - 1 do
      if Vault.Arr[i].Cnt = 1 then
        Writeln( Vault.Arr[i].SWord )
    ;
    //Удаляем из памяти массив слов.
    Finalize(Vault.Arr);
    Vault.Len := 0;
 
    Writeln('Повторить - Enter. Выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.06.2018, 12:54
Ответы с готовыми решениями:

Нужно чтобы программа работала под Win7 64bit. Как это реализовать?
Нужно написать программу, которая будет каждые 30 сек считывать данные из файла и выводить их на...

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

Как сделать так чтобы при нажатии клавиш выводились цифры на рисунке?
Здравствуйте, дорогие читатели! У нас в этой четверти идет проект по информатике и нам нужно...

Нужно, чтобы введенные теги выводились как текст
Есть поле в которое вводят текст. Необходимо сделать так чтобы если в поля вводят теги типа:...

7
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
26.06.2018, 12:59 2
чтобы цифры не выводились в консоль
Это что и как?
0
0 / 0 / 1
Регистрация: 05.10.2017
Сообщений: 53
26.06.2018, 19:29  [ТС] 3
Чтобы вводились только буквы от [А-Я],а цифры - нет
0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
26.06.2018, 19:38 4
Цитата Сообщение от LuckyVadim Посмотреть сообщение
а цифры - нет
данные то выводишь ты сам
не хочешь выводить цифры - не выводи
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
26.06.2018, 19:38 5
Откуда выводились? Может чтоб не вводились?
0
0 / 0 / 1
Регистрация: 05.10.2017
Сообщений: 53
26.06.2018, 19:56  [ТС] 6
Чтобы при вводе в консоль, цифры не вводились
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
26.06.2018, 20:13 7
Ну наконец-то дошло что ввод и вывод это не одно и тоже.
В консоли Делфи нет такого действия как readkey в Паскале и KeyPress в оконном приложении Делфи.

Добавлено через 13 минут
Есть такой модуль CRT32 для консоли Делфи, там можно делать подобное. Вот пример.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
uses
  SysUtils,Crt32;
 
var s:string;
    c:char;
begin
s:='';
repeat
c:=readkey;
if c in ['A'..'Z','a'..'z'] then
 begin
  write(c);
  s:=s+c;
 end;
if c=#13 then writeln;
until c=#13;
writeln(s);
readln;
end.
Модуль можно скачать здесь.
Выводить рядом с начальной матрицей мин и мах
0
Модератор
9256 / 6034 / 2379
Регистрация: 21.01.2014
Сообщений: 25,795
Записей в блоге: 3
27.06.2018, 04:36 8
LuckyVadim, ох, что-то накручено там, не пойми чего... У Вас задание какое? Узнать количество вхождений каждого слова в тексте?
0
27.06.2018, 04:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.06.2018, 04:36
Помогаю со студенческими работами здесь

Нужно чтобы заголовки столбцов выводились не как переменные, а по-другому
Проблема такая. В MySQL заголовки стобцов имеют названия типа dissolved_oxygen, а нужно чтобы было...

Нужно привести это уравнение к дифференциальной форме, чтобы реализовать его в блоке DEE
Как это уравнение привести к д.у. ? С реализацией обычных д.у. в блоке Dee знаком хорошо, но вот...

Нужно, чтобы данные из DataGrid выводились в ReportViewer
Привет всем! Пожалуйста, помогите,с моей проблемой... Мучаюсь уже целый день. Заранее скажу, что...

Нужно, чтобы все элементы стека выводились на экран
Исправьте пожалуйста!) Нужно, чтобы все элементы стека выводились на экран. namespace...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru