Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.01.20;
Скачать: CL | DM;

Вниз

Перевёрнутые буквы   Найти похожие ветки 

 
Bpeguk ©   (2007-12-19 01:18) [0]

Добрый вечер, помогите пожалуйста в следующем: у меня задание -  Приклеить к строке ее же в перевернутом виде столько раз, сколько в ней согласных букв. Вот что я сделал, но ЭТО не работает как надо, запутался я:

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, Math;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Edit1: TEdit;
   Edit2: TEdit;
   Memo1: TMemo;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}
const Sogl : array[1..17] of string = ("b","c","d","f","g","h","k","l","m","n","p","r","s","t","v","z","x");
procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
   j: integer;
   k: integer;
   sLine: string;
begin
    k:=0;
    sLine:=edit1.Text;
    for i:=0 to Length(Edit1.Text) do begin
    for j:=0 to Length(Sogl) do begin
    if Edit1.Text[i]=Sogl[j] then
    for k:=0 to Length(Edit1.Text) do begin
    sLine:=memo1.lines.append(Edit1.Text[Length(Edit1.Text)-k]);
    //sLine:=sLine+Edit1.Text[Length(Edit1.Text)-k];

   end;
   edit2.text:=sLine;
end;
end;
end;
end.


 
Германн ©   (2007-12-19 01:22) [1]

Во-первых. Почему все циклы начинаются с 0?


 
Джо ©   (2007-12-19 01:48) [2]

Приступы необъяснимой доброты...

function GetConsonantCount (S: string): Integer;
const
 Consonants: set of Char = ["b","c","d","f","g","h","k","l","m","n","p","r","s","t","v","z","x"];
var
 I: Integer;
begin
 Result := 0;
 S := LowerCase(S);
 for I := 1 to Length(S) do
 begin
   if S[I] in Consonants then
     Inc(Result)
 end
end;

function BlaBlaBla (const S: string): string;
var
 I,
 ConsonantCount: Integer;
begin
 ConsonantCount := GetConsonantCount(S);

 for I := 0 to ConsonantCount do
   Insert (S,Result,I*StrLen);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Edit2.Text := BlaBlaBla(Edit1.Text)
end;

Это если как попроще и понаглядней, без оптимизации. Разбирайтесь.


 
Германн ©   (2007-12-19 02:05) [3]


> Джо ©   (19.12.07 01:48) [2]
>
> Приступы необъяснимой доброты...
>

Вызванные тем самым о чём спрашивал Kerk?


 
Джо ©   (2007-12-19 02:27) [4]

> [3] Германн ©   (19.12.07 02:05)
>
> > Джо ©   (19.12.07 01:48) [2]
> >
> > Приступы необъяснимой доброты...
> >
>
> Вызванные тем самым о чём спрашивал Kerk?

Ну, зачем так сразу вот? :)


 
Германн ©   (2007-12-19 02:45) [5]


> Ну, зачем так сразу вот? :)
>

Ну почему "так сразу". В той ветке к этому времени уже перешли к другим классам ОПП :)

Но ты всё-таки на досуге ещё раз прочитай сабж. Там ведь нужно ещё что-то как-то переворачивать. Что и как - не очень понятно, посему я ограничился в [1] указанием на очевидную ошибку в приведенном коде. А дальше пусть автор подключится к обсуждению.


 
Bpeguk ©   (2007-12-19 02:59) [6]

Огромное спасибо. У меня ошибка на линии:    Insert (S,Result,I*StrLen); Not enough actual parameters ,   не понимаю :(


 
Германн ©   (2007-12-19 03:16) [7]


> Bpeguk ©   (19.12.07 02:59) [6]
>
> Огромное спасибо. У меня ошибка на линии:    Insert (S,Result,
> I*StrLen); Not enough actual parameters

У тебя ошибка не "на линии", а в мозгах. Какая ошибка, где, когда и в каком коде выдается?

А на [1] ответить не можешь? Религия не позволяет?


 
Bpeguk ©   (2007-12-19 03:26) [8]

Простите, незаметил этот комментарий. С 0 , потому, что я думал, что так правильно, видимо ошибался. Я прибываю в небольшем замешателстве, т.к. напроч запутался в том, что написал месяц назад при помощи книг и конспектов, и если честно то не до конца понимаю систему работы массивов и циклов.


 
Bpeguk ©   (2007-12-19 03:28) [9]

А ошибка:
[Error] Unit1.pas(52): Not enough actual parameters
[Fatal Error] Project1.dpr(5): Could not compile used unit "Unit1.pas"


 
Германн ©   (2007-12-19 03:41) [10]


> Bpeguk ©   (19.12.07 03:26) [8]
>
> Простите, незаметил этот комментарий. С 0 , потому, что
> я думал, что так правильно, видимо ошибался.

Ошибался.


> Bpeguk ©   (19.12.07 03:28) [9]
>
> А ошибка:
> [Error] Unit1.pas(52): Not enough actual parameters
>

А эта ошибка где возникает?


 
Bpeguk ©   (2007-12-19 04:04) [11]

Делфи выделяет красным  "Insert (S,Result,I*StrLen)";


 
Германн ©   (2007-12-19 04:08) [12]


> Bpeguk ©   (19.12.07 04:04) [11]
>
> Делфи выделяет красным  "Insert (S,Result,I*StrLen)";
>

Ну а где? В каком месте кода?
Методов Insert в VCL есть более чем.


 
Bpeguk ©   (2007-12-19 04:11) [13]

А как можно найти точное местоположение ошибки?


 
Германн ©   (2007-12-19 04:21) [14]


> Bpeguk ©   (19.12.07 04:11) [13]
>
> А как можно найти точное местоположение ошибки?
>

Достал.
Ну а там,где у тебя
> Делфи выделяет красным
это разве не точное месторасположение ошибки?
Я спрашивал про то, в какой процедуре, функции, методе находится эта строка, которая "выделяется красным". :(

На худой конец замени строку Insert (S,Result,I*StrLen) на строку System.Insert (S,Result,I*StrLen) и ложись спать.


 
Bpeguk ©   (2007-12-19 04:40) [15]

Метод Insert , в System , в функции BlaBlaBla :) Я попробывал System.Insert , ничего не выходит, таже проблема :(((


 
Джо ©   (2007-12-19 04:57) [16]

А, точно, про перевернутые-то я и забыл.
Ну, напиши еще функцию, переворачивающую строку, там будет кода от силы на 5 строк и добавь к существующему коду, он тривиален же ж.
Насчет [6] ничего сказать не могу, бог его знает, что у вас там с инсертом. Пойду спать наконец :)


 
Джо ©   (2007-12-19 05:01) [17]

А, блин, там не StrLen, а Length(S)+1, конечно. Эк меня заглючило и даже не могу вспомнить причину этого :)

П.С. Функцию, «переворачивающую» строку писать не буду не из вредности, а из псевдо-педагогических соображений :)



Страницы: 1 вся ветка

Текущий архив: 2008.01.20;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.019 c
15-1197488574
Kerk
2007-12-12 22:42
2008.01.20
В Чип и Дип можно купить лазер, способный убить муху с 3х метров?


15-1197031863
oldman
2007-12-07 15:51
2008.01.20
Почему могут ссориться модем и видеокарта?


2-1197996711
new_user )
2007-12-18 19:51
2008.01.20
недопонимаю...


15-1197298242
@!!ex
2007-12-10 17:50
2008.01.20
Помогите установить Turbo Delphi


11-1182453093
=BuckLr=
2007-06-21 23:11
2008.01.20
RE_StartIndent