Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Задача на Паскал

Featured Replies

Имам нужда от малко помощ за една семпла задача на паскал , но явно не е по силите ми ...

Ето и задачата:

 

Да се напише програма ,която по зададени два масива А и В намира елементите на масива С(С+А+В).

 

благодаря предварително :)

Имам нужда от малко помощ за една семпла задача на паскал , но явно не е по силите ми ...

Ето и задачата:

 

Да се напише програма ,която по зададени два масива А и В намира елементите на масива С(С+А+В).

 

благодаря предварително :)

1. Условието е неясно/неточно

2. Напишете вие нещо, ние ще помагаме по-нататък. Но никой няма да ви напише цялата задача!

  • Автор

1. Условието е неясно/неточно

2. Напишете вие нещо, ние ще помагаме по-нататък. Но никой няма да ви напише цялата задача!

 

Нека да приемем , че масивите са двумерни и примерно , че ние ще въвеждаме стойностите на двата масива и всеки елемент съответно от масива А да бъде събран със съответния елемет от масива В и да се запише в клетката на масив С пример C[j]:=A[j]+B[j] :D

 

A аз лично стигнах до едно място и нататък не мога и не знам как да продължа.

 

Program ABC;

 

uses crt;

 

Type

         TipMas2=array[1..5,1..10] of real;

 

Var

        i,,j,m,n:integer;

        A,B,C:TipMas2;

 

Begin

      

Clrscr();

 

      Write('задайте броя на редовете: ');Readln(m);

       Write('задайте броя на стълбовете: ');Readln(n);

 

for i:=1 to m do

 

    for j:=1 to n do

 

       begin

 

          Write('задайте елемента от ',i,'-ти ред и ',,j,'-ти стълб: ');

      

и до тук не знам нататък какво да правя :|

Редактирано от pavlin_i (преглед на промените)

 

Нека да приемем , че масивите са двумерни и примерно , че ние ще въвеждаме стойностите на двата масива и всеки елемент съответно от масива А да бъде събран със съответния елемет от масива В и да се запише в клетката на масив С пример C[j]:=A[j]+B[j] :D

 

A аз лично стигнах до едно място и нататък не мога и не знамкак да продължа.

 

Program ABC;

 

uses crt;

 

Type

         TipMas2=array[1..5,1..10] of real;

 

Var

        i,j,m,n:integer;

        A,B,C:TipMas2;

 

Begin

      

Clrscr();

 

      Write('задайте броя на редовете: ');Readln(m);

       Write('задайте броя на стълбовете: ');Readln(n);

 

for i:=1 to m do

 

    for j:=1 to n do

 

       begin

 

          Write('задайте елемента от ',i,'-ти ред и ',,j,'-ти стълб: ');

      

и до тък не знам нататък каво да правя :|

СЛед това четете елементите един по един. Първо за първия масив, след това за втория. След това организирате същия цикъл (двоен) и в него сумирате елементите с еднакъв индекс и ги присвоявате на новия масив

  • Автор

СЛед това четете елементите един по един. Първо за първия масив, след това за втория. След това организирате същия цикъл (двоен) и в него сумирате елементите с еднакъв индекс и ги присвоявате на новия масив

 

Благодаря за отзивчивостта Ви !! Ако може да ви помоля за още една дребна услуга ако може да донапишем програмата понеже пак не знам как да напиша двойния цикъл за да събере 2 -та масива в Pascal.

Съжалявам за нахалството.

 

 

Program ABC;

 

uses crt;

 

Type

         TipMas2=array[1..5,1..10] of real;

 

Var

        i,j,m,n:integer;

        A,B,C:TipMas2;

 

Begin

      

Clrscr();

 

      Write('задайте броя на редовете: ');Readln(m);

       Write('задайте броя на стълбовете: ');Readln(n);

 

for i:=1 to m do

 

    for j:=1 to n do

 

       begin

 

          Write('задайте елемента от ',i,'-ти ред и ',,j,'-ти стълб: ');

 

          Readln(A[j]);

 

for i:=1 to m do

 

   for j:=1 to n do

 

      begin

 

          Write('задайте елемента от',i,'-ти ред и',j,'-ти стълб: ');

 

          Readln(B[j]);

1. това трябва да е така:

for i:=1 to m do
    for j:=1 to n do
       begin
          Write('задайте елемента от ',i,'-ти ред и ',,j,'-ти стълб: ');
          Readln(A[i][j]);
end;
end;
for i:=1 to m do
   for j:=1 to n do
      begin
          Write('задайте елемента от',i,'-ти ред и',j,'-ти стълб: ');
          Readln(B[i][j]);
end;
end;

защото вие никъде не ги затваряте тези цикли

А сумирането е просто

for i:=1 to m do
   for j:=1 to n do
C[i][j]=A[i][j]+B[i][j];
end;
end;

И аз никога не съм писал на паскал така че нищо чудно да има някъде синтактични грешки :)

  • Автор

Благодаря отново за помоща ! Много дружелюбен и приветлив човек сте Благодаря :)

Благодаря отново за помоща ! Много дружелюбен и приветлив човек сте Благодаря :)

Няма защо, радвам се че съм бил полезен

  • Автор

Благодаря отново за помоща ! Много дружелюбен и приветлив човек сте Благодаря :)

 

Може да е от полза на някой цяла зглобена задачка :)

 

Program ABC;

 

uses crt;

 

Type

         TipMas2=array[1..5,1..10] of real;

 

Var

        i,j,m,n:integer;

        A,B,C:TipMas2;

 

Begin

      

Clrscr();

 

      Write('задайте броя на редовете: ');Readln(m);

       Write('задайте броя на стълбовете: ');Readln(n);

 

for i:=1 to m do

 

    for j:=1 to n do

 

       begin

 

          Write('задайте елемента от ',i,'-ти ред и ',,j,'-ти стълб: ');

 

          Readln(A[j]);

 

for i:=1 to m do

 

   for j:=1 to n do

 

      begin

 

          Write('задайте елемента от',i,'-ти ред и',j,'-ти стълб: ');

 

          Readln(B[j]);

 

for i:=1 to m do

    for j:=1 to n do

       begin

          Write('задайте елемента от ',i,'-ти ред и ',,j,'-ти стълб: ');

          Readln(A[i][j]);

end;

 

for i:=1 to m do

   for j:=1 to n do

      begin

         

          Write('задайте елемента от',i,'-ти ред и',j,'-ти стълб: ');

         

          Readln(B[i][j]);

     

       end;

 

for i:=1 to m do

  

    for j:=1 to n do

 

C[i][j]=A[i][j]+B[i][j];

 

End.

 

 

Само че как да изведем числата от масива С да се изпишат на екрана ???

1. това трябва да е така:

for i:=1 to m do
    for j:=1 to n do
       begin
          Write('задайте елемента от ',i,'-ти ред и ',,j,'-ти стълб: ');
          Readln(A[i][j]);
end;
end;
for i:=1 to m do
   for j:=1 to n do
      begin
          Write('задайте елемента от',i,'-ти ред и',j,'-ти стълб: ');
          Readln(B[i][j]);
end;
end;

защото вие никъде не ги затваряте тези цикли

А сумирането е просто

for i:=1 to m do
   for j:=1 to n do
C[i][j]=A[i][j]+B[i][j];
end;
end;

И аз никога не съм писал на паскал така че нищо чудно да има някъде синтактични грешки :)

Не го обърквай повече, цикъла може да е за един оператор или за един блок begin...end.  Тея самотните end-ове ще му дадат грешка при компилиране защото няма begin към тях.

for i:=1 to m do
   Begin

    for j:=1 to n do

Begin
 

     Write('C[j] ');
 

End;

writeln('');

end;

Не го обърквай повече, цикъла може да е за един оператор или за един блок begin...end.  Тея самотните end-ове ще му дадат грешка при компилиране защото няма begin към тях.

Хубаво е понякога да четеш!

 

....

И аз никога не съм писал на паскал така че нищо чудно да има някъде синтактични грешки :)

Редактирано от capnemo (преглед на промените)

  • Автор

Помисли малко ! С коя команда се извежда текст на екрана ? Как да изведем елементи на масив ? Ами както при въвеждането им.

 

 

:Д извинявам се може би е от умората вече

 

writeln('C[j]:10:2);

 

примерно с извеждане до втори знак след запетая :)

for i:=1 to m do

   Begin

    for j:=1 to n do

Begin

 

     Write('C[j] ');

 

End;

writeln('');

end;

Хубаво е понякога да четеш!

 

 

 

Не не се извеждат така. Примерно ще въведеш за m 5  и за n 2 и ще ти изведе 10 пъти

 

Write('C[j]');

 

и след като го изведе ще изчака да натиснеш Enter и ще затвори програмата ;) няма да изведе числата според мен.

Няма защо, радвам се че съм бил полезен

 

 

 

Благодаря все пак програмата работи !!! Това е важното :) Благодаря ан всички :)

  • 5 месеца по-късно...

Здравейте, имам малко затруднение с тази задача:

Да се състави главна програма за обработка на три масива IM(10x10) и OM(14x14) и  MB(15,15], където данните са  числа в интервала [-99 -  99]. Съответните подпрограми да извършват следните обработки:

  • извеждане на условието на задачата и името на автора;
  • въвеждане на входните данни;
  • извеждане на входните данни;
  • да се състави подпрограма кoятo нaмиpa cумата нa вcички eлeмeнти, които лежат  над  главния диагонал и са по-малки от зададено от клавиатурата число К, да се намери техния брой. Ако няма такива елементи да се нулират елементите на последния ред.
  • Резултатите да се изведат на екрана;

 Успях да въведа и изведа данните, но с подпрограмата не мога да се справя. Моля за малко помощ. Благодаря предварително :)

Характерно за главния диагонал е, че индексите за ред са равни на съответните индекси за колона. 

 

Логично следствие от горното е, че над главния диагонал и в дясно от него са всички елементи на които индекса за колона е по голям от индекса за ред.

 

Например ако обхождаш по редове:

 

1. На първия ред това са всички елементи без елемента от първата колона

2. На втория ред това са всички елементи без елементите от първата и втората колона

.....................................................................

н-1. На ред н-1 това е само елемента от н тата колона

н.    На ентия ред няма такива елементи 

 

Не знам точно как се пише на Паскал, но може да се организира такъв примерно цикъл.

 

Ако i е индекса за ред, а j е индекса за колона

 

За i от 1 до н-1

За j от i+1 до н

.................

.................

.................

следващо j

следващо i

 

Разбира се горното е вярно, ако индексирането започва от 1.

 

Ако индексирането започва от 0 става така:

 

За i от 0 до н-2

За j от i+1 до н-1

.................

.................

.................

следващо j

следващо i

Редактирано от Реджеп Иведик (преглед на промените)

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    26%
    Дарени 256.00 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.