Pascal: работа со строками и массивами
Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill
Помогите пожайлуста с этими двумя программками а то у меня что-то не получается.Заранее благодарен.
1.Среди тех строк целочисленной матрицы,которые содержат только нечетные элементы,найти строку с максимальной суммой модулей элементов.
2.Дана строка символов состоящая из нулей,единиц и пробелов.Группы нулей и единиц разделенные пробелами(одним или несколькими) и не содержащик пробелов внутри себя, будем считать словами.Требуется найти самое длинное и самое короткое слово в строке,и рассматривая эти слова как числа определить их сумму.
1.Среди тех строк целочисленной матрицы,которые содержат только нечетные элементы,найти строку с максимальной суммой модулей элементов.
2.Дана строка символов состоящая из нулей,единиц и пробелов.Группы нулей и единиц разделенные пробелами(одним или несколькими) и не содержащик пробелов внутри себя, будем считать словами.Требуется найти самое длинное и самое короткое слово в строке,и рассматривая эти слова как числа определить их сумму.
по 2 вопросу
на сколько я понял строки выгледят так:
011001 000100 010101.........000011 010100 111100
если да то тебе надо перебрать строку в цикле от
пробела до пробела это уже будет под цикл,
после подцикла записать число в переменную и
искать дальше
а преобразовать текст в число = strtoint("string")[/b]
на сколько я понял строки выгледят так:
011001 000100 010101.........000011 010100 111100
если да то тебе надо перебрать строку в цикле от
пробела до пробела это уже будет под цикл,
после подцикла записать число в переменную и
искать дальше
а преобразовать текст в число = strtoint("string")[/b]
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
[OFF] а за такое название топика модератор тебя накажет!

Угу. Зубов нарисовал, хоть и не модератор 

Даже самый дурацкий замысел можно воплотить мастерски
А можешь написать ее лисинг? Если несложно то напиши.
спасибо.
спасибо.
Mишаня мне пока некогда я диплом делаю,
ты поищи в инете поиск в массивах данных,
или поиск слова в строке и.т.д
ты поищи в инете поиск в массивах данных,
или поиск слова в строке и.т.д
Да ладно спасибо и за это!
А ты может посмотришь вот такую задачу.Может ты ее решишь?
Дан файл содержащий текст на русском языке.Составить в алфавитном порядке список всех слов встречающихся в этом тексте.
Заранее благодарен!
Да кстати язык естественно Паскаль
А ты может посмотришь вот такую задачу.Может ты ее решишь?
Дан файл содержащий текст на русском языке.Составить в алфавитном порядке список всех слов встречающихся в этом тексте.
Заранее благодарен!
Да кстати язык естественно Паскаль
1 Открытие файла -> запись в переменную наприм. ХРЕНОТЕХТ
2 Перебрать переменную ф-й StrPos
эта ф-я ищет с определленной позиции символ
в переменной и возвращает его позицию относительно начала
переменной.
В нашем случае чтобы выделить слово из текста
мы должны отыскать пробел после него (слова),
а потом скопировать слово в массив (МАССИВ),
после этого удалить из переменной все до найденного пробела
(т.е. найденное слово), и искать дальше.
синтаксис смотри в делфе. Вот наприм
var
ХРЕНОТЕХТ: TEXT;
МАССИВ: array[100000(колич. слов)]: String[20(длина слова)]
ПОЗИЦИЯ,
СЧЕТЧИК: integer;
StrPos(' ', ХРЕНОТЕХТ, ПОЗИЦИЯ);
for i:= 0 to ПОЗИЦИЯ-1 do //-1 т.к. ПОЗИЦИЯ - указывает на поз. пробела!
МАССИВ[СЧЕТЧИК]:= МАССИВ[СЧЕТЧИК] + ХРЕНОТЕХТ;
inc(СЧЕТЧИК);
delete(0,ПОЗИЦИЯ,ХРЕНОТЕХТ) - удаляем слово которое записали в массив оно ведь не нужно уже и маятся меньше
Вот ядро цикла повторяй его пока не будет конец текста
про то когда конец текста не помню но вроде два символа сподряд
идут : #0#0 - точно не помню
3. Вот у тебя получилось:
МАССИВ[1]= Солёный
МАССИВ[2]= Рыжий
МАССИВ[3]= Алмаз
если сделать так МАССИВ[2,1] то должно быть "Р"
далее переводишь в ф-й CHR(TChar) - вроде она
в порядковый номер по алфавиту (незабывай что у компа алфавит около 255 символов прочитай где нибудь про это)
и упорядочиваешь как надо надеюсь ты разберешься
но есть более простой метод
использовать TStrings
ЛИСТИНГ: TStrings;
там инициализируешь его и все такое
далее его надо заполнить
for i:= 0 то СЧЕТЧИК do ЛИСТИНГ.ADD(МАССИВ)
а потом ЛИСТИНГ.SortList и там есть настройки сортировать по убыванию по возрастанию и т.д.
а лучше сразу в МЕМО или РИЧЕДИТ забодяж
......МЕМО.ЛИНЕС.АДД(МАССИВ).....
МЕМО.ЛИНЕС.СОРТИРОВАТЬЛИСТ
надеюсь ты понял и я не зря потратил 30 мин на написание
2 Перебрать переменную ф-й StrPos
эта ф-я ищет с определленной позиции символ
в переменной и возвращает его позицию относительно начала
переменной.
В нашем случае чтобы выделить слово из текста
мы должны отыскать пробел после него (слова),
а потом скопировать слово в массив (МАССИВ),
после этого удалить из переменной все до найденного пробела
(т.е. найденное слово), и искать дальше.
синтаксис смотри в делфе. Вот наприм
var
ХРЕНОТЕХТ: TEXT;
МАССИВ: array[100000(колич. слов)]: String[20(длина слова)]
ПОЗИЦИЯ,
СЧЕТЧИК: integer;
StrPos(' ', ХРЕНОТЕХТ, ПОЗИЦИЯ);
for i:= 0 to ПОЗИЦИЯ-1 do //-1 т.к. ПОЗИЦИЯ - указывает на поз. пробела!
МАССИВ[СЧЕТЧИК]:= МАССИВ[СЧЕТЧИК] + ХРЕНОТЕХТ;
inc(СЧЕТЧИК);
delete(0,ПОЗИЦИЯ,ХРЕНОТЕХТ) - удаляем слово которое записали в массив оно ведь не нужно уже и маятся меньше
Вот ядро цикла повторяй его пока не будет конец текста
про то когда конец текста не помню но вроде два символа сподряд
идут : #0#0 - точно не помню
3. Вот у тебя получилось:
МАССИВ[1]= Солёный
МАССИВ[2]= Рыжий
МАССИВ[3]= Алмаз
если сделать так МАССИВ[2,1] то должно быть "Р"
далее переводишь в ф-й CHR(TChar) - вроде она
в порядковый номер по алфавиту (незабывай что у компа алфавит около 255 символов прочитай где нибудь про это)
и упорядочиваешь как надо надеюсь ты разберешься
но есть более простой метод
использовать TStrings
ЛИСТИНГ: TStrings;
там инициализируешь его и все такое
далее его надо заполнить
for i:= 0 то СЧЕТЧИК do ЛИСТИНГ.ADD(МАССИВ)
а потом ЛИСТИНГ.SortList и там есть настройки сортировать по убыванию по возрастанию и т.д.
а лучше сразу в МЕМО или РИЧЕДИТ забодяж
......МЕМО.ЛИНЕС.АДД(МАССИВ).....
МЕМО.ЛИНЕС.СОРТИРОВАТЬЛИСТ
надеюсь ты понял и я не зря потратил 30 мин на написание
К стате мишань мой адреc shutterman@mail.ru
Мишаня если надо то я могу выслать аську на мыло
ты как разобрался со 2 вопросом?
ты как разобрался со 2 вопросом?