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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2021, 20:37   #1
kilogram4ik
Пользователь
 
Регистрация: 15.10.2020
Сообщений: 68
По умолчанию Не понимаю что за ошибка .

Вообще не понимаю что за ошибка. Если запускать эту программу на паскале или в консоле(delphi), то все ок. В оконой реализации почему-то выдает вот такую ошибку "[dcc32 Error] zadanie_2.pas(67): E2034 Too many actual parameters". Помогите исправить ее.



сам код:

Код:
unit zadanie_2;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons;

type
  TForm3 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Memo1: TMemo;
    BitBtn1: TBitBtn;
    procedure BitBtn1Click(Sender: TObject);
    Procedure WriteB;

  private
  Procedure SwapB;
  public
    { Public declarations }
  end;
const alph:string[26]='00111';


var
  Form3: TForm3;
  b:array[1..100] of byte;
  bb:integer;
var x:byte;

implementation

{$R *.dfm}

Procedure TForm3.SwapB;
var  N,i,j,k:byte;
begin
   x:=b[i];
   b[i]:=b[k];
   b[k]:=x;
end;

Procedure TForm3.WriteB;
var   N,i,j,k:byte;
begin
   for i:=1 to N do
   Memo1.Lines.Add(alph[b[i]]);

   Label2.Caption:=IntToStr(bb);
end;

procedure TForm3.BitBtn1Click(Sender: TObject);
var  N,i,j,k:byte;
begin
N:=StrToInt(Edit1.Text);
   for i:=1 to N do b[i]:=i;
   WriteB;
   while (true) do
      begin
         i:=N;
         while (i>0) and (b[i]>=b[i+1]) do i:=i-1;
         if i=0 then begin  exit; end;
         for j:=i+1 to N do
             if (B[j]>B[i]) then K:=j;




         SwapB (i,k); //вот тут ошибка


         for j:=i+1 to (i+((N+1-i) div 2)) do



         SwapB (j,N+i+1-j); //вот тут ошибка 



         WriteB;
         inc(bb);
      end;
end;

end.
kilogram4ik вне форума Ответить с цитированием
Старый 03.03.2021, 21:36   #2
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,869
По умолчанию

Цитата:
Сообщение от kilogram4ik Посмотреть сообщение
SwapB (i,k);
Вы в этой строке пытаетесь передать в процедуру два параметра. А описана эта процедура вообще без параметров.
Цитата:
Сообщение от kilogram4ik Посмотреть сообщение
Procedure TForm3.SwapB;
northener вне форума Ответить с цитированием
Старый 04.03.2021, 00:20   #3
kilogram4ik
Пользователь
 
Регистрация: 15.10.2020
Сообщений: 68
По умолчанию

northener, может подскажите как можно сделать так , чтобы в мемо выводило по 5 элементов в одну строку , а не по 1 . а то пока только так выводит , а как исправить не знаю .
kilogram4ik вне форума Ответить с цитированием
Старый 04.03.2021, 02:02   #4
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,869
По умолчанию

Может и подскажу. Но только после того, как вы четко объясните о чём идёт речь. Что за элементы, откуда вы их берёте и как выводите в мемо.
northener вне форума Ответить с цитированием
Старый 04.03.2021, 09:03   #5
kilogram4ik
Пользователь
 
Регистрация: 15.10.2020
Сообщений: 68
По умолчанию

northener, ну смотрите
. Есть условие задания : В 5 классе по плану 3 урока английского языка в неделю, сколькими способами их можно расставить в расписании на неделю, если известно, что 5-классники работают по 5-дневке с максимальным числом уроков 4?(нужно вывести все эти способы и их количество )

У меня получается что они выводятся по 1 элементу в строку (Memo). Как я правильно в одной строке должно быть 5 элементов (эти дни).

правда не знаю то я объясняю или нет)
kilogram4ik вне форума Ответить с цитированием
Старый 04.03.2021, 12:15   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

1. "простое" дополнение имеющегося
Код:
for j:=1 to N do begin
if j mod 5 =1 then begin // начинаем НОВЫЙ урок
  Memo.add(s); // выводим известный на данный момент список урока 
   s:=''; // и сбрасываем набор дней
end;
s:=s + ... //добавляем данные по текущему дню для текущего урока
end;
НО ...
этот код НЕ полон, нужно будет принять некоторые доп. меры(ухищрения) чтобы все было красиво.

2. двойной цикл
Код:
for t:=1 to 4 do begin -- уроки
   s:='';
   for d:=1 to 5 dpo begin -- дни
      s:=s + ... <что-то там в день d на уроке t>
   end; // s есть список урока (t) во все дни
   Memo.add(s); // что-то с этим списком будем делать
end;

почти заново
3.
Код:
var b: array[1..4, 1..5] of byte; // 4 урока за 5 дней (0 /1 )
и все что из-за этого придется менять.
4.
Код:
var b: array[1..5] of byte; // просто 5 дней и НОМЕР урока (0 -нет урока )
и опять все что потребуется.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 04.03.2021 в 12:18.
evg_m вне форума Ответить с цитированием
Старый 04.03.2021, 18:02   #7
kilogram4ik
Пользователь
 
Регистрация: 15.10.2020
Сообщений: 68
По умолчанию

evg_m, я возможно что-то не так написал . но мне выводит вот так





11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
00000
00000
00000
00000
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
00000
00000
00000
00000
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
00000
00000
00000
00000
11111
11111
11111
11111
11111
11111
11111
11111
00000
00000
00000
00000
11111
11111
11111
11111
11111
11111
11111
11111
00000
00000
00000
00000
11111
11111
11111
11111
11111
11111
11111
11111
00000
00000
00000
00000
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
00000
00000
00000
00000
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
00000
00000
00000
00000
11111
11111
11111
11111
11111
11111
11111
11111
00000
00000
00000
00000
11111
11111
11111
11111
11111
11111
11111
11111
00000
00000
00000
00000
11111
11111
11111
11111
11111
11111
11111
11111
00000
00000
00000
00000
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
00000
00000
00000
00000
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
11111
00000
00000
00000
00000
11111
11111
11111
11111
11111
11111
11111
11111
00000
00000
00000
00000
11111
11111
11111
11111
11111
11111
11111
11111
00000
00000
00000
00000
11111
11111
11111
11111
11111
11111
11111
11111
00000
00000
00000
00000
kilogram4ik вне форума Ответить с цитированием
Старый 05.03.2021, 01:48   #8
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,869
По умолчанию

Цитата:
Сообщение от kilogram4ik Посмотреть сообщение
я возможно что-то не так написал . но мне выводит вот так
Вместо этой простыни надо было привести код, который вы написали.
northener вне форума Ответить с цитированием
Старый 05.03.2021, 10:53   #9
kilogram4ik
Пользователь
 
Регистрация: 15.10.2020
Сообщений: 68
По умолчанию

northener, и как я мог про это забыть(

Код:
for t:=1 to 4 do begin 
   s:='';
   for d:=1 to 5 dpo begin 
      s:=s + alph[b[i]];
   end;
   Memo.Lines.Add(s);
end;
Если сделать так вывод то оно выдает так как было там

Последний раз редактировалось kilogram4ik; 05.03.2021 в 11:05.
kilogram4ik вне форума Ответить с цитированием
Старый 05.03.2021, 11:51   #10
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

И этот "браслетик" - вместо 4 строчек? Такое впечатление, что эти 2 вложенных цикла крутанулись во внешнем цикле ещё раз 20
digitalis вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
где ошибка?? начинаю только программировать не понимаю пока что все Юра0037 Помощь студентам 1 21.03.2018 23:54
Помогите!! Не понимаю что за ошибка? Lucky_Vadim Помощь студентам 0 26.12.2017 18:27
подскажите в чем ошибка? не понимаю что не так, считавание как сделать туту? Uourin Общие вопросы C/C++ 1 08.06.2016 12:52
Не понимаю, что за ошибка в коде. Скрин тут. Bane Общие вопросы Delphi 3 01.06.2014 20:21
помогите пожалуйста я что то не понимаю в чём тут ошибка? я уже всё перепробовал worshewitin Помощь студентам 1 29.06.2009 15:49