Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 13.06.2012, 10:46   #1
ПИнасол
Пользователь
 
Регистрация: 26.02.2012
Сообщений: 32
Радость Строки в делфи

Надо посчитать в какой строке наибольшее количество точек и вывести в edit3.

Цитата:
S=edit1.text
S[i] it S[i]='.' then p1=p1+1;
S=edit2.text
S[i] it S[i]='.' then p1=p1+1
вот что-то наподобия кода%)
подскажите что делать.
p.s. заранее спасибо

Последний раз редактировалось ПИнасол; 13.06.2012 в 10:49.
ПИнасол вне форума
Старый 13.06.2012, 11:28   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
s := edit1.text; // в принципе можно и без S - прямо с edit1.Text напрямую работать...
p1 := 0;
for i:=1 to Length(s) do
  if s[i] = '.' then Inc(p1);
s := edit2.text; // в принципе можно и без S - прямо с edit2.Text напрямую работать...
p2 := 0;
for i:=1 to Length(s) do
  if s[i] = '.' then Inc(p2);

if p1>p2 then Edit3.text := 'в первой строке точек больше, их там '+IntToStr(p1)+' штук.'
else
  if p2>p1 then Edit3.text := 'во второй строке точек больше, их там '+IntToStr(p2)+' штук.'
  else Edit3.text := 'одинаковое число точек, в каждой строке их ровно '+IntToStr(p2)+' штук.';

Последний раз редактировалось Serge_Bliznykov; 13.06.2012 в 11:32.
Serge_Bliznykov вне форума
Старый 13.06.2012, 20:25   #3
ПИнасол
Пользователь
 
Регистрация: 26.02.2012
Сообщений: 32
Радость

вот что у меня получается но все равно не работает
Код:
procedure TForm1.Button1Click(Sender: TObject);
Var
p1,p2,length,i:integer;
Begin
edit1.text; // в принципе можно и без S - прямо с edit1.Text напрямую работать...
p1 := 0;
for i:=1 to Length  do
  if [i] = '.' then Inc(p1);
edit2.text; // в принципе можно и без S - прямо с edit2.Text напрямую работать...
p2 := 0;
for i:=1 to Length do
  if [i] = '.' then Inc(p2);

if p1>p2 then Edit3.text := 'в первой строке точек больше, их там '+IntToStr(p1)+' штук.'
else
  if p2>p1 then Edit3.text := 'во второй строке точек больше, их там '+IntToStr(p2)+' штук.'
  else Edit3.text := 'одинаковое число точек, в каждой строке их ровно '+IntToStr(p2)+' штук.';
  end;
  end.
кидает ошибку сюда
Цитата:
if [i] = '.' then Inc(p1);
после then (incompatible type)




___________
Код нужно оформлять по правилам:
не тегом "цитата", а тегом [CODE]..[/СODE] (это кнопочка с решёточкой # - правее знака "цитата" на панели)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 14.06.2012 в 09:11.
ПИнасол вне форума
Старый 13.06.2012, 20:47   #4
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,371
По умолчанию

Это такой принцип, пропускать части кода без осмысления сказанного?
Было ведь написано:
Цитата:
Serge_Bliznykov
Код:
s := edit1.text; // в принципе можно и без S - прямо с edit1.Text напрямую работать...
p1 := 0;
for i:=1 to Length(s) do
  if s[i] = '.' then Inc(p1);
И это надо понимать так:
Код:
p1 := 0;
for i:=1 to Length(s) do
  if edit1.text[i] = '.' then Inc(p1);
А что может означать такой набор символов [i] ?

Это вопрос для осмысления ваших ошибок.

Вроде так ...
Как-то так, ...
ViktorR на форуме
Старый 13.06.2012, 23:24   #5
ПИнасол
Пользователь
 
Регистрация: 26.02.2012
Сообщений: 32
Радость

Цитата:
procedure TForm1.Button1Click(Sender: TObject);
Var
s,p1,p2,i:integer;
Begin
p1 := 0;
for i:=1 to Length (s) do
if edit1.text[i] = '.' then Inc(p1);
p2 := 0;
for i:=1 to Length do
if edit2.text[i] = '.' then Inc(p2);

if p1>p2 then Edit3.text := 'â ïåðâîé ñòðîêå òî÷åê áîëüøå, èõ òàì '+IntToStr(p1)+' øòóê.'
else
if p2>p1 then Edit3.text := 'âî âòîðîé ñòðîêå òî÷åê áîëüøå, èõ òàì '+IntToStr(p2)+' øòóê.'
else Edit3.text := 'îäèíàêîâîå ÷èñëî òî÷åê, â êàæäîé ñòðîêå èõ ðîâíî '+IntToStr(p2)+' øòóê.';
end;
end.
понял свою ошибку,но кидает на
Цитата:
for i:=1 to Length (s) do
и пишет несовместимые типы...я так понимаю я S неправильно объявляю? или что тут надо дописать?
ПИнасол вне форума
Старый 13.06.2012, 23:43   #6
Npwas
Форумчанин
 
Аватар для Npwas
 
Регистрация: 26.09.2011
Сообщений: 158
По умолчанию

Угу =)
Код:
Var
 s:string;
<----Весы Там.
Npwas вне форума
Старый 13.06.2012, 23:51   #7
ПИнасол
Пользователь
 
Регистрация: 26.02.2012
Сообщений: 32
Радость

всё программа запускается,но не работает полностью...т.е. не ищет где больше точек....при любом раскладе точек пишет
Цитата:
одинаковое число точек, в каждой строке их ровно 0 штук.
ПИнасол вне форума
Старый 14.06.2012, 02:18   #8
weech
Пользователь
 
Аватар для weech
 
Регистрация: 16.11.2011
Сообщений: 91
По умолчанию

Везде перед "[i]" допишите "s".
weech вне форума
Старый 14.06.2012, 09:17   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Код:
for i:=1 to Length(s) do
if edit1.text[i] = '.' then Inc(p1);
неверно!!!
если отказываться от S - так отказываться ВЕЗДЕ!!!!
Почему цикл до длины строки S - если в неё ничего не писали?!?!!!!
надо или так:
Код:
var s : string;
  p1,p2 :integer;
Begin
  p1 := 0;
  s := Edit1.Text;
  for i:=1 to Length (s) do
     if s[i] = '.' then Inc(p1);
  p2 := 0;
  s := Edit2.Text;
  for i:=1 to Length(s) do
    if s[i] = '.' then Inc(p2);
либо так:
Код:
var   // s - не описываем и не используем!
  p1,p2 :integer;
Begin
  p1 := 0;
  for i:=1 to Length(Edit1.Text) do
     if Edit1.Text[i] = '.' then Inc(p1);
  p2 := 0;
  for i:=1 to Length(Edit2.Text) do
    if Edit2.Text[i] = '.' then Inc(p2);

Не могу понять, почему не взять МОЙ КОД из пост#2 ЦЕЛИКОМ?!?!?!? если уж непонятно, зачем S, какого она типа, для чего i в квадратных скобочках и прочие сложности?!!!
Serge_Bliznykov вне форума
Старый 14.06.2012, 10:31   #10
ПИнасол
Пользователь
 
Регистрация: 26.02.2012
Сообщений: 32
Радость

спасибо большое Сергей..заработало=)
p.s. тема закрыта
ПИнасол вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строки в делфи bella15 Помощь студентам 9 19.05.2012 17:52
Составить матрицу, элементы первой строки равны максимальному элементу; а второй строки - номеру (Делфи) Markss Помощь студентам 1 30.05.2011 23:15
Строки. Делфи. РэБ Помощь студентам 6 25.12.2010 19:16
Строки в делфи Артём Соловьёв Помощь студентам 0 05.12.2010 13:16
Делфи строки Asira Помощь студентам 1 13.05.2010 22:26