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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2011, 11:30   #1
nihromer
Новичок
Джуниор
 
Регистрация: 25.10.2011
Сообщений: 2
По умолчанию паскаль 2 лабы

помогите плиз 2 лабы зделать ато девченка на грани отчисления(

1) Для матрицы А (4 строки 5 столбцов) определить, в какой из её половин (верхней или нижней) больше нулевых элементов, выведите одно из сообщений: "больше в верхней половине", "больше в нижней половине", "одинаково". Для подсчета количества нулевых элементов в произвольной части матрицы используйте процедуру.

2)Заданы целочисленные массивы из 5 элементов - A, B, C, D. Вычислите и выведите на экран значение суммы дробей ai/bi+ci/di. Ответ должен быть несократимой дробью. Для вычисления суммы разработайте подпрограмму функцию.
nihromer вне форума Ответить с цитированием
Старый 25.10.2011, 11:55   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
из 5 элементов - A — раз, B — два, C — три, D — четыре
Цитата:
зделать ато девченка на грани отчисления((
Бывает. ((
Но раз нет желания решать самому или хотя бы рассказать, что конкретно не получается, показать свой код и т.п., в общем хоть как-то поучаствовать в решении своих проблем, а не просто копипастнуть задание со словами "помогите" и ждать, что кто-то добрый даст готовое решение, то лучше сразу привыкать обращаться во фриланс, где с радостью помогут за вознаграждение.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 25.10.2011, 11:58   #3
nihromer
Новичок
Джуниор
 
Регистрация: 25.10.2011
Сообщений: 2
По умолчанию

так в лабе написано ! да и денех нету чтоб купить лабы
nihromer вне форума Ответить с цитированием
Старый 25.10.2011, 12:17   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
так в лабе написано !
Видимо опечатка либо рекомендация хранить результат в 5 элементе массива.

Ну так вариантов немного, всего 3:
1. Пытаться разобраться и как-то поучаствовать в решении задачи
2. Искать деньги
3. Надеяться на удачу и ждать, что откуда-нибудь появится готовое решение\всем внезапно поставят зачет за лабы, не проверяя их и
Цитата:
девченка на грани отчисления(
в случае неудачи радоваться отчислению, ибо это ж одни плюсы: кому-то не придется учиться за девчонку следующие 4.5 курса, она сможет больше времени проводить с тобой и т.д.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 07.02.2012, 22:01   #5
Аннет_САПР
Новичок
Джуниор
 
Регистрация: 07.02.2012
Сообщений: 1
По умолчанию

У меня тоже такое задание, ток там строки и столбцы даны буквами, а я пока произвольно взяла значения. Я начала писать, но я плохо разбираюсь в процедурах и функциях. Они нужны, чтобы все упрощать, но мне они только все портят. Я бы без них сделала все, но в этом вся фишка. У меня лазарус выдает ошибку. В чем она заключается я еще не поняла. Вот код, что я придумала
Код:
var
  Form1: TForm1; 
       Type TA=Array [0..5, 0..2]  of integer;
         Var a:TA;
implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
procedure summa(var a:TA);
var
   i,j,k,l:integer;
begin
     k:=0;
     l:=0;
   for i:=0 to 5 do
   for j:=0 to 2 do
   If i<=3 then

       Begin
         if a[i,j]=0 then
          k:=k+1;
       end
   Else
    begin
       If a[i,j]=0 then
        l:=l+1;
       end;
    end;



procedure TForm1.Button1Click(Sender: TObject);

    Var a:TA;  i,j: integer;
begin
     Randomize;
     for i:=0 to 5 do
     For j:= 0 to 2 do
     Begin
       a[i,j]:=random(10);
       StringGrid1.Cells[i,j]:=IntToStr(a[i,j]);
end;
end;

end.

Помогите пожалуйста


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

Последний раз редактировалось Serge_Bliznykov; 08.02.2012 в 00:24.
Аннет_САПР вне форума Ответить с цитированием
Старый 08.02.2012, 10:22   #6
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Код:
Type
  TA=Array [0..5, 0..2]  of integer;
var
  Form1: TForm1;
  a:TA;
implementation

{$R *.dfm}

procedure summa(var a:TA; var k,l:Byte);    //k,l - количество нулевых элементов в верхней и нижней части матрицы
var
   i,j:integer;
begin
   k:=0;
   l:=0;
   for i:=0 to 5 do
   for j:=0 to 2 do
   If i<3 then

       Begin
         if a[i,j]=0 then
          k:=k+1;
       end
   Else
    begin
       If a[i,j]=0 then
        l:=l+1;
       end;
    end;

procedure TForm1.Button1Click(Sender: TObject);
var
  kol1,kol2:Byte;
begin
  summa(a,kol1,kol2);
  ShowMessage('Kol1 = '+IntToStr(kol1)+' '+'Kol2 = '+IntToStr(kol2));
end;

procedure TForm1.FormActivate(Sender: TObject);
 Var

   i,j: integer;
begin
   Randomize;
     for i:=0 to 5 do
     Begin
       For j:= 0 to 2 do
       Begin
         a[i,j]:=random(5);
         StringGrid1.Cells[j,i]:=IntToStr(a[i,j]);
       end;
     End;
end;

end.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 12.03.2012, 16:00   #7
Diman1904
 
Регистрация: 12.03.2012
Сообщений: 3
По умолчанию

Народ, помогите. У меня похожее задание, но надо сравнивать не верхнюю и нижнюю части, а правую и левую. Вот код. Ошибка в том, что когда задаю нечетное число строк, то прога выдает ошибку. Помогите исправить...

Код:
type
 TA = Array of array of integer;

var
 Form1: TForm1;

implementation

{$R *.dfm}
{ TForm1 }

 Procedure ShowArray(var a:TA; out K,L:integer);
 var
 i,j:integer;
 Begin

 //Проверка левой части массива на наличие нулевых элементов
 K:=0;
 For j:= 0 to Length(a)-1 do
 For i:= 0 to (Length(a[0]) div 2)-1 do
 If a[i,j]=0 then
 inc(K);

 //Проверка правой части массива на наличие нулевых элементов
 L:=0;
 For j:=0 to Length(a)-1 do
 For i:= (Length(a[0]) div 2) to Length(a[0])-1 do
 If a[i,j]= 0 then
 inc(L);

 End;

 //****************************************************************************

 procedure TForm1.Button1Click(Sender: TObject);
 var
 a: TA;
 K,L:integer;
 i,j:integer;
 begin

 Randomize;

 try

 Label1.Caption:='';

 SetLength(a, StrToInt(Form1.LabeledEdit2.Text) , StrToInt(Form1.LabeledEdit1.Text));

 //Проверяем N на четность и отличность от нуля
 If (Length(a[0]) mod 2 <> 0) or (StrToInt(Form1.LabeledEdit1.Text)=0) then
 begin
 Label4.Caption:='Введите четное число N';
 for j :=0 to Stringgrid1.RowCount do
 for i :=0 to Stringgrid1.ColCount do
 StringGrid1.Cells[i,j]:='';
 Abort;
 end;

 except
 Form1.Label1.Caption:='Неверные данные';
 exit
 end;

 if CheckBox1.Checked then
 begin
 //Автоматическая инициализация массива
 for j:= 0 to Length(a)-1 do
 For i:= 0 to Length(a[0])-1 do
 begin
 a[i,j]:=random(10);
 Stringgrid1.Cells[i,j]:=IntToStr(a[i,j]);
 end;
 end
 else
 begin
 try
 for j:= 0 to Length(a)-1 do
 For i:= 0 to Length(a[0])-1 do
 a[i,j]:=StrToInt(form1.Stringgrid1.Cells[i,j]);
 except
 Form1.Label1.Caption:='Неверные данные';
 end;
 end;

 //Вызов процедуры подсчета нулевых элементов
 ShowArray(a,K,L);

 //Вывод
 Form1.Label2.Caption:=IntToStr(K);
 Form1.Label3.Caption:=IntToStr(L);

 If K>L then
 Form1.Label4.Caption:='Больше нулей в левой части матрицы, их - '+ IntToStr(K);
 If K<L then
 Form1.Label4.Caption:='Больше нулей в правой части матрицы, их - '+ IntToStr(L);
 If K=L then
 Form1.Label4.Caption:='Количество нулей в обеих частях матрицы одинаковое и равно - '+ IntToStr(K);

 end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
Label2.Caption:='';
Label3.Caption:='';
Label4.Caption:='';
if CheckBox1.Checked then
Stringgrid1.Options:=StringGrid1.Options-[goEditing]
else
Stringgrid1.Options:=StringGrid1.Options+[goEditing]
end;

//Процедуры задания свойств StringGrid
procedure TForm1.LabeledEdit1Change(Sender: TObject);
begin
try
Form1.Stringgrid1.ColCount:=StrToInt(LabeledEdit1.Text);
except
Form1.Label1.Caption:='Неверное количество столбцов';
end;
end;

//************************************
procedure TForm1.LabeledEdit2Change(Sender: TObject);
begin
try
Form1.Stringgrid1.RowCount:=StrToInt(LabeledEdit2.Text)
except
Form1.Label1.Caption:='Неверное количество строк';
end;
end;
end.
Diman1904 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Лабы drzod Фриланс 6 03.07.2011 09:16
лабы по С++ GreenTerrapin Фриланс 4 21.12.2010 18:29
Лабы по С++ ПлоМбиРка Помощь студентам 2 31.05.2010 14:25