|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Программы на Delphi
Программы, фрагмент программ на Delphi
|
#2
|
|||
|
|||
Решение задачи 1.
Код:
var s:string; //текст с предложением a:integer; //кол-во восклицательных предложений i:integer; //для цикла begin s:=s+' '; //для того что бы считало последнее предложение //любым способом передаём выше предложение в переменную s a:=0; //первоначальное значение кол-ва "?" for I := 1 to length(s) do if (s[i]='?')and(s[i]=' ') then a:=a+1; //поиск количества вопросительных знаков writeln('кол-во вопросительных предложении: '+inttostr(a)); end; |
Этот пользователь сказал Спасибо Vladimr за это полезное сообщение: | ||
Dream32 (02.04.2021)
|
#3
|
|||
|
|||
Для задачи 2 нужно составлять отдельный список имён собственных с которыми потом будете сравнивать слова из вашего предложения.
Для задачи 3 нужно составлять отдельный список слов с правильным написание с которым потом будете сравнивать, и если этого слова нет в списке, то скорее всего слово написано с ошибкой. Для задачи 4 нужно составить список предлогов для каждого падежа. Далее нужно проверять слово идущее до проверяемого слова и если оно есть в списке то выводить падеж слова. Для задачи 5 составляем таблицу( в первой колонке английское слова, во второй колонке перевод на русский язык). Но перевод будет грубый и не будет учитывать смысл предложения и слова будут только в одном падеже. |
Этот пользователь сказал Спасибо Vladimr за это полезное сообщение: | ||
Dream32 (02.04.2021)
|
#4
|
|||
|
|||
А так мне очень интересно на каком курсе вам дают такие задачи? Или вы делайте кому-то задачи на заказ и получаете с них деньги, а тут вам помогают бесплатно?
|
#5
|
|||
|
|||
Это 2 курс, отличный план но я не такая
|
#6
|
|||
|
|||
И даже нет ни каких предположений и вариантов как это сделать? Или вам сразу нужен готовый ответ? Как потом будете объяснять при сдаче, что решение задачи не соответствует вашему уровню?
Как решение на задачу номер три. (Но решение грубое и можно сделать лучше, но и этот вариант работает) Код:
var pravilnie_slova:array [1..65535] of string; //список правильного написания слов s:string; //ваша строка которую проверяем i,j:integer; //для цикла s1:string; //слово из предложения b:integer; //для цикла проверки слова на правописание f:boolean; //показывает что данное слово есть в словаре slovo:array[0..65535] of integer; //позиции пробелов для определения слов a:integer; //кол-во слов begin //вводим строку любым известным способом s:=' '+s; // для того что бы посчитало первое слово s:=s+' '; //для того чтобы посчитало последнее слово a:=0; for I := 1 to length(s) do if (s[i]=' ')and(s[i+1]<>' ') then begin slovo[a]:=i; a:=a+1; end;//позиция пробела и кол-во слов в предложении //теперь в переменной "A" занесенно кол-во слов в предложении for I := 0 to a do begin s1:=copy(s,slovo[i]+1,slovo[i+1]-1); //сейчас сюда скопированно слово из предложения //далее проверяем есть ли данное слово в словаре f:=false; //первоначально указываем что данного слова нет в словаре for b := 1 to 65535 do if pravilnie_slova[b]=s1 then begin f:=true; break; end; //если слово есть в словаре то выходим из цикла //показывает что данное слово есть в словаре if f=false then writeln('слово написанно с ошибкой '+s1); end; end; |
#7
|
|||
|
|||
Одно из решений задачи номер пять.
Код:
var perevod:array[1..65535,1..2] of string; //наш переводчик (в первом столбце английское слово, во втором русское) s:string; //ваша строка которую проверяем i,j:integer; //для цикла s1:string; //слово из предложения b:integer; //для цикла проверки слова на наличие в переводчике f:integer; //позиция совпадения нашего слова и в словаре slovo:array[0..65535] of integer; //позиции пробелов для определения слов a:integer; //кол-во слов sss:string; //итоговая строка begin //вводим строку любым известным способом sss:=''; s:=' '+s; // для того что бы посчитало первое слово s:=s+' '; //для того чтобы посчитало последнее слово a:=0; for I := 1 to length(s) do if (s[i]=' ')and(s[i+1]<>' ') then begin slovo[a]:=i; a:=a+1; end;//позиция пробела и кол-во слов в предложении //теперь в переменной "A" занесено кол-во слов в предложении //в массиве slovo занесены позиции пробелов по которым мы ищем слова for I := 0 to a do begin s1:=copy(s,slovo[i]+1,slovo[i+1]-1); //сейчас сюда скопировано слово из предложения //далее проверяем есть ли данное слово в переводчике f:=0; //позиция совпадения слова в словаре for b := 1 to 65535 do if perevod[b,1]=s1 then begin f:=b; break; end; //если слово есть в словаре то выходим из цикла //в переменной F записана позиция для перевода слова //показывает что данное слово есть в словаре if f>0 then sss:=sss+' '+perevod[f,2] else sss:=sss+' '+s1; //если слово найдено в словаре то пишем его перевод, если не найдено то пишем оригинальное не переведённое слово end; writeln(sss); //переведённая строка end; |
#8
|
|||
|
|||
А 2,4 задание ?
|
#9
|
|||
|
|||
Наглость не знает границ. А лень и нежелание разобраться в простых задачах, которые можно решить просто изучив пару уроков по делфи в течении дня - вообще вас не красит. Я уже не говорю про то, что тема не в том топике создана.
|
#10
|
|||
|
|||
Я вас просила отвечать ? Не хотите помогать, промолчите зачем в негативную сторону высказываться
|
#11
|
|||
|
|||
Я вас просил мне отвечать? Не хотите моск включать, промолчите на моё замечание зачем в негативную сторону высказываться?
А по факту, вот здесь, в верхней части, большими жирными буквами написано Код на шару для таких как вы. Вы бы человеку лучше спасибо для начала сказали, вам готовый код дают, расписывают его, а вы "а ещё задания?" Наглость полнейшая. |
#12
|
|||
|
|||
Может если бы он скинул все задания я бы написала СПАСИБО БОЛЬШОЕ! Я МОГУ СКИНУТЬ ЗАДАНИЕ В КОД НА ШАРУ В ЭТОМ БУДЕТ СМЫСЛ ? Я ДУМАЮ МНЕ ЛУЧШЕ ПОДОЖДАТЬ ОТВЕТ, ОТ ТОГО КТО МНЕ ПОМОГАЛ
|
#13
|
|||
|
|||
Цитата:
Не нужно увиливать, особенно если этого делать не умеете. Цитата:
Будет, тем самым вы сделаете всё по правилам. Можно даже аналогию провести: - я перебежала дорогу в неположенном месте потому, что мне лень до перехода идти и вообще время там терять. |
#14
|
|||
|
|||
Ну да как я и думала, после этого тебе вообще не ответят спасибо!
|
#15
|
|||
|
|||
вывод падежа слов
Один из вариантов решения. Смотрим на предлог перед проверяемым словом и сравниваем с базой предлогов по падежам Код:
var padez:array[1..7,1..11] of string; s:string; i,j:integer; s1:string; s2:string; b:integer; f:integer; flag:boolean; slovo:array[0..65535] of integer; a:integer; begin s:=' '+s; s:=s+' '; a:=0; for I := 1 to length(s) do if (s[i]=' ')and(s[i+1]<>' ') then begin slovo[a]:=i; a:=a+1; end; for I := 0 to a do begin s1:=copy(s,slovo[i]+1,slovo[i+1]-1); s2:=copy(s,slovo[i-1]+1,slovo[i]-1); flag:=false; for f := 2 to 7 do for b := 2 to 11 do if padez[f,b]=s2 then begin flag:=true; break; end; if flag=true then writeln('Падеж слова '+s1+' '+padez[f,1]) else writeln('Падеж слова '+s1+' '+padez[1,1]); end; end; |
Этот пользователь сказал Спасибо Vladimr за это полезное сообщение: | ||
Dream32 (02.04.2021)
|