Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
9 / 8 / 1
Регистрация: 18.05.2009
Сообщений: 40
1

Найти порядковый номер максимальной цифры в тексте.

18.05.2009, 14:13. Показов 4872. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите решить задачу, бьюсь-бьюсь и ничего не выходит

Вот она дословно:
"Дан текст, в начале которого имеются пробелы и в котором имеются цифры. Найти порядковый номер максимальной цифры, считая, что первый номер имеет первый не пробел. Если максимальных цифр несколько, то должен быть найден номер первой из них."

Вот что я пытался нарешать:

Pascal
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
program Task_4_2;
uses crt;
var
    s,s1:String;
        k,i,j,l,Count:Integer;
 
begin   clrscr;
    s:='          455s89rt4sh47h4sffghars65465f'; {текст}
        Count:=0;
 
        for i:=1 to length(s) do   {находим количество пробелов}
                begin
                if s[i] = ' ' then inc(Count);
                end;
 
        for j:=1 to length(s) do
        {пробежимся посимвольно по тексту и найдем максимальные цифры и их номера с самого начала.}
        begin
                k:=0; l:=0; {обнулим счетчики перед самым началом}
                if s[j] in ['0'..'9'] then
                        if s[j] > k then
                                k:=s[j]; l:=j;
                end; {for}
 
        writeln('Max 4islo ',k,' imeet nomer ',l-Count);
        readkey;
end.
Чуть не забыл. Выдает ошибку Incompatible types: got "Char" expected "LongInt" в (21,29) и "SmallInt" в (22,37)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.05.2009, 14:13
Ответы с готовыми решениями:

Определить порядковый номер максимальной цифры ряда
задача:решить через for:дан ряд натуральных чисел,в котором все цифры различны ,определить...

Дана строка, состоящая из заглавных английских букв и цифр. Определить порядковый номер последней цифры
помогите решить задачу!

Найти слово максимальной длины в заданном тексте
найти слово максимальной длины в заданном тексте

Найти порядковый номер даты с начала отсчёта
Люди добрые помогите в решение этих 2 задач на Паскале.....нужно составить программы .... заранее...

12
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
18.05.2009, 14:29 2
так у тебя типы разные , тебе надо что бы k было типа char
0
9 / 8 / 1
Регистрация: 18.05.2009
Сообщений: 40
18.05.2009, 14:43  [ТС] 3
Тип поменял, пришлось где
Pascal
1
k:=0;
поставить кавычки
Pascal
1
k:='0';
прога запустилась, но вот теперь выдает, что максимальное число это 0 и имеет порядковый номер 29 (я посчитал, 29 это длина текста минус пробелы. Мдя...
0
11 / 11 / 0
Регистрация: 09.04.2009
Сообщений: 65
18.05.2009, 14:49 4
а счетчики-то почему в цикле обнуляете? поставьте это обнуление перед циклом
0
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
18.05.2009, 14:55 5
Pascal
1
2
3
4
5
6
7
8
 for j:=1 to length(s) do
        {пробежимся посимвольно по тексту и найдем максимальные цифры и их номера с самого начала.}
        begin
                k:=0; l:=0; {обнулим счетчики перед самым началом}
                if s[j] in ['0'..'9'] then
                        if s[j] > k then
                                k:=s[j]; l:=j;
                end; {for}
перепишем так


Pascal
1
2
3
4
5
6
7
8
9
10
11
 for j:=1 to length(s) do
        {пробежимся посимвольно по тексту и найдем максимальные цифры и их номера с самого начала.}
        begin
                k:=0; l:=0; {обнулим счетчики перед самым началом}
                if s[j] in ['0'..'9'] then
                        begin
                          val(s[j],k1,cod);
                        if k1 > k then
                                k:=k1; l:=j;
                         end;
                end; {for}
где k1,cod:integer;
0
9 / 8 / 1
Регистрация: 18.05.2009
Сообщений: 40
18.05.2009, 14:56  [ТС] 6
Nicky_, поставил перед циклом, теперь пишет, что мах число 9, номер 29. У девятки номер 6 должен быть Ну хоть стало получаться находить максимальное число...
0
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
18.05.2009, 14:59 7
Pascal
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
program Task_4_2;
uses crt;
var
        s,s1:String;
        k,i,j,l,Countб,k1,cod:Integer;
 
begin   clrscr;
        s:='          455s89rt4sh47h4sffghars65465f'; {текст}
        Count:=0;
 
        for i:=1 to length(s) do   {находим количество пробелов}
                begin
                if s[i] = ' ' then inc(Count);
                end;
 
        for j:=1 to length(s) do
        {пробежимся посимвольно по тексту и найдем максимальные цифры и их номера с самого начала.}
        begin
                k:=0; l:=0; {обнулим счетчики перед самым началом}
                if s[j] in ['0'..'9'] then
                        begin
                          val(s[j],k1,cod);
                        if k1 > k then
                                begin
                                k:=k1; l:=j;end;
                         end;
                end; {for}
 
 
        writeln('Max 4islo ',k,' imeet nomer ',l-Count);
        readkey;
end.
то есть полностью код должен получиться такой

Добавлено через 3 минуты 9 секунд
у тебя не правильно выдает положение потому что надо так написать не
Pascal
1
k:=k1; l:=j;
а надо писать
Pascal
1
begin k:=k1; l:=j;end;
1
11 / 11 / 0
Регистрация: 09.04.2009
Сообщений: 65
18.05.2009, 15:01 8
maslanin, ну и в цикле поставьте тогда begin и end
Pascal
1
2
if s[j] > k then begin
                                k:=s[j]; l:=j; end
1
9 / 8 / 1
Регистрация: 18.05.2009
Сообщений: 40
18.05.2009, 15:19  [ТС] 9
mamedovvms, с этим полным кодом пишет, что число 0 и порядковый номер минус 10.

Добавлено через 4 минуты 12 секунд
Nicky_, сейчас попробую

Добавлено через 9 минут 45 секунд
Всем спасибо! Заработал вот этот вариант:
Pascal
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
program Task_4_2;
uses crt;
var
        s,s1:String;
        i,j,l,Count:Integer;
        k:Char;
begin   clrscr;
        s:='          455s89rt4sh47h4sffghars65465f'; {текст}
        Count:=0;
 
        for i:=1 to length(s) do   {находим количество пробелов}
                begin
                if s[i] = ' ' then inc(Count);
                end;
 
    k:='0'; l:=0; {обнулим счетчики перед самым началом}
        for j:=1 to length(s) do
        {пробежимся посимвольно по тексту и найдем максимальные цифры и их номера с самого начала.}
        begin
                if s[j] in ['0'..'9'] then
                        if s[j] > k then
                                begin
                                k:=s[j]; l:=j; end;
                end; {for}
 
        writeln('Max 4islo ',k,' imeet nomer ',l-Count);
        readkey;
end.
0
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 11
12.06.2012, 17:43 10
Цитата Сообщение от maslanin Посмотреть сообщение
begin clrscr;
s:=' 455s89rt4sh47h4sffghars65465f'; {текст}
Объясните пожалуйста что это
0
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
12.06.2012, 18:58 11
Прасковья75, любой текст на ваше усмотрение (в нем должны быть цифры)
1
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 11
12.06.2012, 19:05 12
А как сделать, чтобы выводилось сообщение" введите текст" и уже из него считывался порядковый номер?
0
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
12.06.2012, 19:12 13
эту часть
Цитата Сообщение от maslanin Посмотреть сообщение
s:=' 455s89rt4sh47h4sffghars65465f'; {текст}
заменить на write('s='); readln(s);
1
12.06.2012, 19:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.06.2012, 19:12
Помогаю со студенческими работами здесь

Найти порядковый номер последнего максимального числа.
Написать программу на Паскале. Дана последовательность неотрицательных чисел, последнее из которых...

Найти порядковый номер и самый большой элемент массива В
Кто сможет решит ?! Пожалуйста! 1 - задача Массив: В(50) Найти порядковый номер и самый большой...

Найти наибольший элемент массива и его порядковый номер
Исправте эту программу так, что бы она выводила кроме наибольшего числа массива ещё и его...

Найти порядковый номер первого элемента массива, кратного 5
вот еще задачки: 6. Условие: Используя оператор цикла, вводить с клавиатуры числа и выполнять с...


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

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