Форум по Delphi программированию

 



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 01.04.2021, 20:13
Dream32 Dream32 вне форума
Прохожий
 
Регистрация: 01.04.2021
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Программы на Delphi

Программы, фрагмент программ на Delphi
Изображения
Тип файла: png программы123.png (22.8 Кбайт, 0 просмотров)
Ответить с цитированием
  #2  
Старый 01.04.2021, 20:24
Vladimr Vladimr вне форума
Прохожий
 
Регистрация: 17.03.2021
Сообщения: 23
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Решение задачи 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  
Старый 01.04.2021, 20:30
Vladimr Vladimr вне форума
Прохожий
 
Регистрация: 17.03.2021
Сообщения: 23
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

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

Для задачи 3 нужно составлять отдельный список слов с правильным написание с которым потом будете сравнивать, и если этого слова нет в списке, то скорее всего слово написано с ошибкой.

Для задачи 4 нужно составить список предлогов для каждого падежа.
Далее нужно проверять слово идущее до проверяемого слова и если оно есть в списке то выводить падеж слова.

Для задачи 5 составляем таблицу( в первой колонке английское слова, во второй колонке перевод на русский язык).
Но перевод будет грубый и не будет учитывать смысл предложения и слова будут только в одном падеже.
Ответить с цитированием
Этот пользователь сказал Спасибо Vladimr за это полезное сообщение:
Dream32 (02.04.2021)
  #4  
Старый 01.04.2021, 20:31
Vladimr Vladimr вне форума
Прохожий
 
Регистрация: 17.03.2021
Сообщения: 23
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

А так мне очень интересно на каком курсе вам дают такие задачи? Или вы делайте кому-то задачи на заказ и получаете с них деньги, а тут вам помогают бесплатно?
Ответить с цитированием
  #5  
Старый 01.04.2021, 20:33
Dream32 Dream32 вне форума
Прохожий
 
Регистрация: 01.04.2021
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Это 2 курс, отличный план но я не такая
Ответить с цитированием
  #6  
Старый 01.04.2021, 20:54
Vladimr Vladimr вне форума
Прохожий
 
Регистрация: 17.03.2021
Сообщения: 23
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

И даже нет ни каких предположений и вариантов как это сделать? Или вам сразу нужен готовый ответ? Как потом будете объяснять при сдаче, что решение задачи не соответствует вашему уровню?

Как решение на задачу номер три. (Но решение грубое и можно сделать лучше, но и этот вариант работает)

Код:
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  
Старый 01.04.2021, 21:02
Vladimr Vladimr вне форума
Прохожий
 
Регистрация: 17.03.2021
Сообщения: 23
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Одно из решений задачи номер пять.

Код:
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  
Старый 02.04.2021, 07:58
Dream32 Dream32 вне форума
Прохожий
 
Регистрация: 01.04.2021
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

А 2,4 задание ?
Ответить с цитированием
  #9  
Старый 02.04.2021, 09:17
denzenit denzenit вне форума
Прохожий
 
Регистрация: 16.12.2020
Сообщения: 11
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Наглость не знает границ. А лень и нежелание разобраться в простых задачах, которые можно решить просто изучив пару уроков по делфи в течении дня - вообще вас не красит. Я уже не говорю про то, что тема не в том топике создана.
Ответить с цитированием
  #10  
Старый 02.04.2021, 09:36
Dream32 Dream32 вне форума
Прохожий
 
Регистрация: 01.04.2021
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
Печаль

Я вас просила отвечать ? Не хотите помогать, промолчите зачем в негативную сторону высказываться
Ответить с цитированием
  #11  
Старый 02.04.2021, 11:31
denzenit denzenit вне форума
Прохожий
 
Регистрация: 16.12.2020
Сообщения: 11
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Я вас просил мне отвечать? Не хотите моск включать, промолчите на моё замечание зачем в негативную сторону высказываться?

А по факту, вот здесь, в верхней части, большими жирными буквами написано Код на шару для таких как вы.


Вы бы человеку лучше спасибо для начала сказали, вам готовый код дают, расписывают его, а вы "а ещё задания?" Наглость полнейшая.
Ответить с цитированием
  #12  
Старый 02.04.2021, 12:05
Dream32 Dream32 вне форума
Прохожий
 
Регистрация: 01.04.2021
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Может если бы он скинул все задания я бы написала СПАСИБО БОЛЬШОЕ! Я МОГУ СКИНУТЬ ЗАДАНИЕ В КОД НА ШАРУ В ЭТОМ БУДЕТ СМЫСЛ ? Я ДУМАЮ МНЕ ЛУЧШЕ ПОДОЖДАТЬ ОТВЕТ, ОТ ТОГО КТО МНЕ ПОМОГАЛ
Ответить с цитированием
  #13  
Старый 02.04.2021, 12:13
denzenit denzenit вне форума
Прохожий
 
Регистрация: 16.12.2020
Сообщения: 11
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Может если бы он скинул все задания я бы написала СПАСИБО БОЛЬШОЕ
Если бы я делал что-то хорошее, но маленькими порциями, то спустя пару таких хороших вещей, не видя благодарности - я бы забросил это дело.
Не нужно увиливать, особенно если этого делать не умеете.

Цитата:
Я МОГУ СКИНУТЬ ЗАДАНИЕ В КОД НА ШАРУ В ЭТОМ БУДЕТ СМЫСЛ?

Будет, тем самым вы сделаете всё по правилам. Можно даже аналогию провести: - я перебежала дорогу в неположенном месте потому, что мне лень до перехода идти и вообще время там терять.
Ответить с цитированием
  #14  
Старый 02.04.2021, 14:34
Dream32 Dream32 вне форума
Прохожий
 
Регистрация: 01.04.2021
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Ну да как я и думала, после этого тебе вообще не ответят спасибо!
Ответить с цитированием
  #15  
Старый 02.04.2021, 14:50
Vladimr Vladimr вне форума
Прохожий
 
Регистрация: 17.03.2021
Сообщения: 23
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

вывод падежа слов
Один из вариантов решения. Смотрим на предлог перед проверяемым словом и сравниваем с базой предлогов по падежам

Код:
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)
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:27.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2021

ВКонтакте   Facebook   Twitter