1 / 1 / 0
Регистрация: 11.09.2008
Сообщений: 21
1

Строчный массив!

11.09.2008, 00:06. Показов 1597. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Даны два предложения. Найти самое короткое из слов первого предложения,которого нет во втором предложении.

В этом плохо понимаю.
Если не сложно запишите в коде пояснения.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.09.2008, 00:06
Ответы с готовыми решениями:

Строчный тип данных
Задана произвольная строка, выполнить с ним следующие действия. Внимание! Не использовать...

Строчный калькулятор
Добрый вечер! Хотелось бы сделать, если это возможно, строчный калькулятор на Pascal. Однако, я...

Напишите программу, определяющую, сколько букв «о» (латинский строчный символ) стоит в заданном слове на четных местах
Напишите программу, определяющую, сколько букв «о» (латинский строчный символ) стоит в заданном...

Строчный массив
Исходные данные: 1) Произвольное слово, 2) номер позиции в слове Результат:1) кол-во букв в слове,...

2
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
11.09.2008, 09:41 2
Поскольку мы не знаем, что за предложения, то должны предусмотреть что в них могут быть разные знаки препинания и лишние пробелы, все это нам надо удалить и оставить только слова, разделенные одним пробелом.
Чтобы не писать по два раза код для обоих предложений, оформим форматирование предложений и превращение их в массивы слов в процедуру Format.
Код
 
[FONT='Courier New CYR']uses[FONT='Courier New CYR']crt[/FONT][FONT='Courier New CYR'];[/FONT]
[FONT='Courier New CYR']const[/FONT][FONT='Courier New CYR']zp[/FONT][FONT='Courier New CYR']=['.',',',':',';','?','!'];{множество символов – знаки препинания}[/FONT]
[FONT='Courier New CYR']type mas=array[1..100]of string;[/FONT]
[FONT='Courier New CYR']var[/FONT][FONT='Courier New CYR']s[/FONT][FONT='Courier New CYR']1,[/FONT][FONT='Courier New CYR']s[/FONT][FONT='Courier New CYR']2,[/FONT][FONT='Courier New CYR']bf[/FONT][FONT='Courier New CYR']:[/FONT][FONT='Courier New CYR']string[/FONT][FONT='Courier New CYR']; {2 предложения и буфер для сортировки}[/FONT]
[FONT='Courier New CYR']m[/FONT][FONT='Courier New CYR']1,[/FONT][FONT='Courier New CYR']m[/FONT][FONT='Courier New CYR']2:[/FONT][FONT='Courier New CYR']array[/FONT][FONT='Courier New CYR'][1..100][/FONT][FONT='Courier New CYR']of[/FONT][FONT='Courier New CYR']string[/FONT][FONT='Courier New CYR'];{массивы слов}[/FONT]
[FONT='Courier New CYR']i[/FONT][FONT='Courier New CYR'],[/FONT][FONT='Courier New CYR']j,k1,k2,n:integer;[/FONT]
[FONT='Courier New CYR']procedure Format(s:string;var m:mas;var k:integer);[/FONT]
[FONT='Courier New CYR']var i:integer;[/FONT]
[FONT='Courier New CYR']begin[/FONT]
[FONT='Courier New CYR']for i:=length(s)downto 1 do[/FONT]
[FONT='Courier New CYR']   begin[/FONT]
[FONT='Courier New CYR']     if s[i] in zp then delete(s,i,1); {[/FONT][FONT='Courier New CYR']удаление[/FONT][FONT='Courier New CYR']знаков[/FONT][FONT='Courier New CYR']препинания[/FONT][FONT='Courier New CYR']}[/FONT]
[FONT='Courier New CYR']     while pos('  ',s)>0  do  delete(s,pos('  ',s),1);{[/FONT][FONT='Courier New CYR']удаление[/FONT][FONT='Courier New CYR']лишних[/FONT][FONT='Courier New CYR']пробелов[/FONT][FONT='Courier New CYR']}[/FONT]
[FONT='Courier New CYR']   end;[/FONT]
[FONT='Courier New CYR']k:=1;[/FONT]
[FONT='Courier New CYR']for i:=1 to length(s1) do    {[/FONT][FONT='Courier New CYR']создание[/FONT][FONT='Courier New CYR']массива[/FONT][FONT='Courier New CYR']}[/FONT]
[FONT='Courier New CYR']   begin[/FONT]
[FONT='Courier New CYR']     if s1[i]=' 'then k:=k+1  {[/FONT][FONT='Courier New CYR']если[/FONT][FONT='Courier New CYR']пробел[/FONT][FONT='Courier New CYR'], [/FONT][FONT='Courier New CYR']то[/FONT][FONT='Courier New CYR'] +1 [/FONT][FONT='Courier New CYR']слово[/FONT][FONT='Courier New CYR']}[/FONT]
[FONT='Courier New CYR']else[/FONT][FONT='Courier New CYR']m[/FONT][FONT='Courier New CYR'][[/FONT][FONT='Courier New CYR']k[/FONT][FONT='Courier New CYR']]:=[/FONT][FONT='Courier New CYR']m[/FONT][FONT='Courier New CYR'][[/FONT][FONT='Courier New CYR']k[/FONT][FONT='Courier New CYR']]+[/FONT][FONT='Courier New CYR']s[/FONT][FONT='Courier New CYR'][[/FONT][FONT='Courier New CYR']i[/FONT][FONT='Courier New CYR']] {иначе составляем очередное слово}[/FONT]
[FONT='Courier New CYR']   end;[/FONT]
[FONT='Courier New CYR']end;[/FONT]

[FONT='Courier New CYR']begin[/FONT]
[FONT='Courier New CYR']clrscr;[/FONT]
[FONT='Courier New CYR']writeln('Vvedite 1-e predlozenie:');[/FONT]
[FONT='Courier New CYR']readln(s1);[/FONT]
[FONT='Courier New CYR']writeln('Vvedite 2-e predlozenie:');[/FONT]
[FONT='Courier New CYR']readln(s2);[/FONT]
[FONT='Courier New CYR']Format(s1,m1,k1);[/FONT]
[FONT='Courier New CYR']Format(s2,m2,k2);[/FONT]
[FONT='Courier New CYR']for[/FONT][FONT='Courier New CYR']i[/FONT][FONT='Courier New CYR']:=1 [/FONT][FONT='Courier New CYR']to[/FONT][FONT='Courier New CYR']k[/FONT][FONT='Courier New CYR']1-1 [/FONT][FONT='Courier New CYR']do[/FONT][FONT='Courier New CYR']  {сортируем первый массив по возрастанию длины слов}[/FONT]
[FONT='Courier New CYR']for j:=1 to k1-1 do[/FONT]
[FONT='Courier New CYR']if length(m1[j])>length(m1[j+1]) then[/FONT]
[FONT='Courier New CYR']  begin[/FONT]
[FONT='Courier New CYR']bf[/FONT][FONT='Courier New CYR']:=[/FONT][FONT='Courier New CYR']m[/FONT][FONT='Courier New CYR']1[[/FONT][FONT='Courier New CYR']j[/FONT][FONT='Courier New CYR']];  {обменный метод (метод "пузырька")}[/FONT]
[FONT='Courier New CYR']m1[j]:=m1[j+1];[/FONT]
[FONT='Courier New CYR']    m1[j+1]:=bf;[/FONT]
[FONT='Courier New CYR']  end;[/FONT]

[FONT='Courier New CYR']for[/FONT][FONT='Courier New CYR']i[/FONT][FONT='Courier New CYR']:=1 [/FONT][FONT='Courier New CYR']to[/FONT][FONT='Courier New CYR']k[/FONT][FONT='Courier New CYR']1 [/FONT][FONT='Courier New CYR']do[/FONT][FONT='Courier New CYR'] {смотрим по порядку все слова в первом массиве}[/FONT]
[FONT='Courier New CYR']begin[/FONT]
[FONT='Courier New CYR']    n:=0;[/FONT]
[FONT='Courier New CYR']    for j:=1 to k2 do[/FONT]
[FONT='Courier New CYR']if[/FONT][FONT='Courier New CYR']m[/FONT][FONT='Courier New CYR']1[[/FONT][FONT='Courier New CYR']i[/FONT][FONT='Courier New CYR']]=[/FONT][FONT='Courier New CYR']m[/FONT][FONT='Courier New CYR']2[[/FONT][FONT='Courier New CYR']j[/FONT][FONT='Courier New CYR']] [/FONT][FONT='Courier New CYR']then[/FONT][FONT='Courier New CYR']n[/FONT][FONT='Courier New CYR']:=[/FONT][FONT='Courier New CYR']n[/FONT][FONT='Courier New CYR']+1; {если такое слово есть во втором – увеличиваем n}[/FONT]
[FONT='Courier New CYR']if[/FONT][FONT='Courier New CYR']n[/FONT][FONT='Courier New CYR']=0 [/FONT][FONT='Courier New CYR']then[/FONT][FONT='Courier New CYR'] {если нет такого слова во втором массиве, заканчиваем поиск}[/FONT]
[FONT='Courier New CYR']begin[/FONT]
[FONT='Courier New CYR']       writeln('Dannoe slovo: ',m1[i]);[/FONT]
[FONT='Courier New CYR']       readln;[/FONT]
[FONT='Courier New CYR']       exit[/FONT]
[FONT='Courier New CYR']     end;[/FONT]
[FONT='Courier New CYR']  end;[/FONT]
[FONT='Courier New CYR']if (i=k1)and(n>0) then writeln('Takogo slova net!');[/FONT]
[FONT='Courier New CYR']{[/FONT][FONT='Courier New CYR']если дошли до конца и все слова повторяются[/FONT][FONT='Courier New CYR']}[/FONT]
[FONT='Courier New CYR']readln[/FONT]
[FONT='Courier New CYR']end.[/FONT]
[/FONT]
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
11.09.2008, 09:48 3
Почему-то некоторые слова "слиплись", а правка не запускается. Попробуй сам разобраться.
На всякий случай прилагаю программу.
Да, забыл уточнить, в строке
while pos(' ',s)>0 do delete(s,pos(' ',s),1); между апострофами по два пробела.
Вложения
Тип файла: rar DV_PR_PR.rar (633 байт, 35 просмотров)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.09.2008, 09:48
Помогаю со студенческими работами здесь

Строчный массив
Всем доброго времени суток. Никак не могу найти решение проблемы в ответах на вопросы других...

Строчный массив
Как вывести из строчного массива элемент. Например массив char a и мне надо вывести 7-ой символ...

Строчный массив в массиве
Код должен проверять есть ли повторяющиеся слова в строке. если есть выводить их, но он ошибается,...

Строчный и табличный массив
Подскажите, почему у меня выводит массив в столбик, а не в строку? using System; using...

Строчный массив - как нужно его задавать
возникла проблема: не могу создать строчный массив. подскажите, пожалуйста, как нужно его задавать.

Почему в качестве параметра метода main() мы передаём пустой строчный массив?
Добрый Вечер!!! Скажите Пожалуйста, почему в качестве параметра метода main() мы передаём пустой...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru