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

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

Kaldata.com - Форуми

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

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

Добре дошли!

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

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

 

Помощ за задачи на Pascal (merged)

Featured Replies

Някой ще каже ли къде е грешката,защото в петак трябва да ги покажа на даскалката и ако съм ги напраил :angry:

  • Отговори 622
  • Прегледи 132k
  • Създадено
  • Последен отговор

Някой ще каже ли къде е грешката,защото в петак трябва да ги покажа на даскалката и ако съм ги напраил :rolleyes:

За първата задача между begin и end замести с този код :

Write('Vyvedete dvete 4isla za namerane na NOD: ');
  Readln(a, b);
  write('NOD na ', a, ' i ', b, ' e: ');
  if a <> b then
	repeat
	  if a > b then a := a - b else b := b - a
	until a = b;
  writeln(a);

за втората :

var a, n: integer;
  masiv: array[1..100] of integer;
begin
  Write('Vyvedete jelaniq broi 4isla, koito jelaete da vyvedete: ');
  Readln(n);
  for a := 1 to n do
  begin
	Write('Vyvedete ', a, '-to 4islo: ');
	readln(masiv[a]);
  end;
  writeln('Vyvedohte slednite 4 isla: ');
	for a := 1 to n do write(masiv[a], ' ');
	writeln('Obratno podredeni te sa:');
	for a := n downto 1 do write(masiv[a], ' ');
end.

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

Мерси много Публикувано изображение проблема е бил в uses crt нали

Грешката е моя, защото не съм зафал тип на данните в масива. Грешката не е в библиотеката, а в това, че съм задал възможните въвеждани числа да не са цели (интежер), а реал. Може и по начина на КЕН да стане, но ако се въведе число от вида на 6.14 порграмата ще бъгне. Мисля, че по- добре би било масива вместо ИНТЕЖЕР да направиш от тип РЕАЛ.

Извинявам се за грешката, просто от толкова много езици ги бъркам малко.. :)

Може би трябва да изведе първо :

write('NOD na ',a:2:2,' i ',b:2:2);

и накрая след цикъла :

writeln(' e: ',a:2:2);

Абсолютно си прав, тъй като след цъкъла стойностите им ще се променят. Така е, когато не ползвам компилатор за проверка на грешки. Поздравления за това, че видя този як бъг Публикувано изображение

Може ли някой от вас 2мата да ми помогне в изучаването ;) skype:sssmoky91 ако няма те скайп кажето кво имате плс :(

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

  • 2 седмици по-късно...

Задачата е следната:

Да се състави програма на паскал За ''к'' студенти са зададени: факлутетни номера,оценка по физика, оценка по математика,оценка по ПИИК.Да се състави алгоритам за образуване на масив '' у '',съдържащ факлутетните номера на студентите които трябва да се явят на испит по физика

Благодаря предватително. Ако никои не може да ми помогне и в тоя форум Публикувано изображение загазил сам я здравата

Привет! Листи назаде темата... Писал съм я тая програма. :help: Трябва и само доработка за изпита по Физика, но там вече е елементарно.. Поздрави!

Здравейте на всички :)

Имам да направя програма на паскал, но много много не ми се отдава :)

Задачата е следната:

Дадени са три двумерни масива A[M,N], B[M,N], C[M,N] (M≤20, N≤20 като M и N се въвеждат от клавиатурата) с реални елементи. Да се разработят три процедури за изпълнение на следните действия:

- въвеждане на елементи в масивите

- отпечатване на въведениете елементи в масивите

- намиране на минималните елементи по редове и определяне на най-големия от всички минимуми

В главната програма процедурите се извикват последователно за всеки масив.

Опитал съм се да направя част от нея, но останалата част не ми е ясна. Надявам се да не се спукате от смях на това, което съм писал в третата процедура, но все пак някак трябва да се помъча.

Имам и въпрос относно това за задаване на М и N от клавиатурата, вие ще кажете дали има нещо вярно в това ,което съм написал, и другия въпрос на този етап е защо след като съм дефинирал тип-а Matrix и след това променливите M и N при опит да компилирам (все пак да пробвам дали нещо от това, което съм написал работи Публикувано изображение ) ми изписва, че няма такав идентификатор (M и N) :?

program Kursova(Input,Output);
type Matrix=array[1..20,1..20]of Real;
     Vector=array[1..20]of Real;
var A,B,C:Matrix;
    M,N:Integer;
    I,J:Integer;
    V:Vector;
procedure Inp(var E:Matrix);
begin
 for I:=1 to M do
  for J:=1 to N do
   Read(E[I,J]);
end;
procedure Otp(var E:Matrix);
begin
 for I:=1 to M do
  begin
   for J:=1 to N do
    Write(E[I,J]:6:2);
    writeln;
  end;
end;
procedure Min(var E:Matrix;var V:Vector);
var MinS:Real;
begin
   V:=E[I,J];
   MinS:=0.0;
   for I:=1 to M do
    V:=E[I,J];
    for J:=1 to N do
    begin
    V:=E[I,J];
     if E[I,J]<MinS then
     MinS:=E[I,J];
     V:=MinS;
    end;
end;
begin
Write('vavedete M<=20, M=');
Readln(M);
if M>20 then
Write('vyvedenoto 4islo M e po-golqmo ot 20')
else
 begin
  Write('vavedete N<=20, N=');
  Readln(N);
  If N>20 then
   Write('vavedenoto 4islo N e po-golqmo ot 20')
  else
   begin
    Writeln('vavedete stoinosti za A');
    Inp(A);
    Otp(A);
    Min(A,V);
    WriteLn('vavedete stoinosti za B');
    Inp(B);
    Otp(B);
    Min(B,V);
   end;
  end;
readln;
end.

Отново се извинявам за може би смехотворните редове от опита ми да направя нещо :speak:

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

Изписва ти, че няма идентификатор M и N, защото такъв няма Публикувано изображение Трябва да си дефинираш масивите по един от двата начина

const MAX = 20;
type Matrix=array[1..MAX,1..MAX]of Real;
	 Vector=array[1..MAX]of Real;
или така

type Matrix=array[1..20,1..20]of Real;
	 Vector=array[1..20]of Real;
по този начин си дефинираш максималния брой елементи на масива, а не САМИЯ брой. По нататък след въвеждането на M,N можеш да го направиш с цикъл Repeat/Until, а не както са сега, защото в сегашния вариант ще въведеш M=21 и N=22 и ще излезеш от програмата или ще ти изведе съобщение за грешка, че въвеждаш повече елементи в масива. Отделно като параметри на процедурите трябва да подадеш 1.името на масива, 2. броя на редовете, 3 броя на колоните. Т.е. ще извикаш процедурата Inp 3 пъти за въвеждане на 3те масива. А друго което ми идва на акъла е да вкараш избора за редове и колони на масива в самата процедура Inp, за да се избегне и изписването на 3 пъти на цикъла за въвеждане на M и N. Това е което се сещам на този етап, малко ми се спи и се извинявам, ако съм доуснал някоя грешка, но утре ще погледна пак на бистра глава и ще редактирам, ако има проблеми :lol6: Ако имаш други въпроси питай :lol6:

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

Изписва ти, че няма идентификатор M и N, защото такъв няма Публикувано изображение Трябва да си дефинираш масивите по един от двата начина

const MAX = 20;
type Matrix=array[1..MAX,1..MAX]of Real;
	 Vector=array[1..MAX]of Real;
или така

type Matrix=array[1..20,1..20]of Real;
	 Vector=array[1..20]of Real;
по този начин си дефинираш максималния брой елементи на масива, а не САМИЯ брой. По нататък след въвеждането на M,N можеш да го направиш с цикъл Repeat/Until, а не както са сега, защото в сегашния вариант ще въведеш M=21 и N=22 и ще излезеш от програмата или ще ти изведе съобщение за грешка, че въвеждаш повече елементи в масива. Отделно като параметри на процедурите трябва да подадеш 1.името на масива, 2. броя на редовете, 3 броя на колоните. Т.е. ще извикаш процедурата Inp 3 пъти за въвеждане на 3те масива. А друго което ми идва на акъла е да вкараш избора за редове и колони на масива в самата процедура Inp, за да се избегне и изписването на 3 пъти на цикъла за въвеждане на M и N. Това е което се сещам на този етап, малко ми се спи и се извинявам, ако съм доуснал някоя грешка, но утре ще погледна пак на бистра глава и ще редактирам, ако има проблеми :lol6: Ако имаш други въпроси питай ;)

благодаря за бързия отговор :lol6:

оправих част от основната програма (това с въвеждането на число > от 20 :lol6: и мисля, че сега е наред)

С въвеждането на М и N всичко е наред, въвеждам масива, извеждам го, но все пак процедурата за намиране на минимумите по редове и след това максимума от тях ми е много оплетена :lol6:

Аз ще продължавам да се мъча и ще се радвам на още малко помощ :)

Благодаря още веднъж :)

п.с. в предния си пост обнових пооправения код на програмата :)

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

С въвеждането на М и N всичко е наред, въвеждам масива, извеждам го, но все пак процедурата за намиране на минимумите по редове и след това максимума от тях ми е много оплетена :)

Аз ще продължавам да се мъча и ще се радвам на още малко помощ :)

Добре си се справил с въвеждането на масивите, но защо не промениш въвеждането на M и N с нещо подобно:

repeat
	 write('Vuvedete stoinost za N, N <= 20: '); readln(n);
	 write('Vuvedete stoinost za M, M <= 20: '); readln(m);
  until ( m <= 20) and (n <= 20);

Сега няколко думи за минималния елемент по редове. Процедурата според мен трябва да се получи нещо такова:

procedure Min(var E:Matrix;var V:Vector);
var MinS:Real;
begin
   MinS:=0.0;
   for I:=1 to M do
	MinS:=E[I,J];
	for J:=1 to N do
	begin
	  if MinS < e[i,j] then begin
							  MinS:=e[i,j];
							  v[i]:=e[i,j];
							end;
	end;
end;

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

Искам да помоля някой за помощ за решаването на следната задача на Паскал: В магазин за електроуреди се поддържа информация за: вид на уреда, модел, производител, едична цена, количество. Да се състави програма, която поддържа файл с посочените данни с помощта на подпрограми за: създаване на нов файл с информация за уредите; регистриране на продажба на уред; регистриране доставка на уреди; пресмятане цената на наличното количество от всички уреди от даден вид; намиране на уреда от даден вид и производител с най-висока цена. Благодаря предварително на отзовалите се ! :offtopic_s: Трябва ми за 8 декември. :)

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

kanar4e, благодаря за отговора и помощта, но не успявам да се справя с тази процедура. Трябвада изведа минимималния от всеки ред (предполагам ще трябва да се запишат тези стойности във вектор) и от там да изведа максималния и изобщо не ми е ясно това, та дори и извеждането в основната програма Публикувано изображение:blink:

Здравейте и аз искам да ви помоля за малко помощ .

Задачата е :

Да се състави програма на Паскал, с която за целочисления масив M, [1<I<15] да се намери произведението на ненулевите елементи с нечетен индекс и сумата на елементите с четен индекс. Да се отпечатат сумата,произведението и входния масив.

Аз съм стигнал до тук и не мога да продължа . Пък и не знам дали е вярна до сега и ще може ли да ми помогнете за да я завърша . Или ако до сега съм бил по грешен път да ми помогнете да я направя .

Благодаря ви предварително . :speak::wors: :wors:

Program zad;
VAR M:Array [1..15] of Integer;
L,I,PR,Sum:Integer;
Begin
Pr:=1;
Sum:=0.0;
Repeat
Write(‘Vavedi I=’);
Readln(I);
Until(I>0) and (I<=15);
For L:=1 to I do
Begin
Write(‘M[‘,L,’]=’);
Readln(M[L]);
End;
For L:=1 to I do
If M[L]<> then
PR:=PR*M[L];
Writeln(‘PR=’,PR);
Readln;
Sum:=Sum+M[L];
Writeln(‘Sum=’,Sum:5:2);
Readln;
End;

Заповядай :)

Program zad;
var M: array[1..15] of Integer;
  L, I, PR, Sum: Integer;

begin
  Pr := 1;
  Sum := 0;

  I:=0;
  repeat
	I:=I+1;
	Write('Vavedi M[',I,'] = ');
	Readln(M[I]);
  until (I = 15);

  for L := 1 to I do
  begin
	if Odd(L) then		// ODD е вградена функция на Pascal, която връща True ако числото е нечетно
	begin
	  if (M[L] <> 0) then
	  begin
		PR := PR * M[L];
	  end;
	end else
	begin
	  Sum := Sum + M[L];
	end

  end;

  Writeln('Proizvedenie = ', PR);
  Writeln('Suma = ', Sum);

  for L := 1 to I do
  begin
	WriteLn('M[', L, '] = ', M[L]);
  end;
end.

Заповядай :)

Program zad;
var M: array[1..15] of Integer;
  L, I, PR, Sum: Integer;

begin
  Pr := 1;
  Sum := 0;

  I:=0;
  repeat
	I:=I+1;
	Write('Vavedi M[',I,'] = ');
	Readln(M[I]);
  until (I = 15);

  for L := 1 to I do
  begin
	if Odd(L) then		// ODD е вградена функция на Pascal, която връща True ако числото е нечетно
	begin
	  if (M[L] <> 0) then
	  begin
		PR := PR * M[L];
	  end;
	end else
	begin
	  Sum := Sum + M[L];
	end

  end;

  Writeln('Proizvedenie = ', PR);
  Writeln('Suma = ', Sum);

  for L := 1 to I do
  begin
	WriteLn('M[', L, '] = ', M[L]);
  end;
end.

Много ти благодаря Ken ! Ще трябва да почерпя ! ;):wors:;):wors:

Бих искал да благодаря на всички, благодарение на които направих моята програма и искам да я публикувам.

Да се състави програма за намиране на положителните елементи, разположени под главния диагонал на двумерен масив с дванадесет реда и дванадесет стълба.

program dimitar;
uses wincrt;
var i,j : integer;
Br:real;
A:Array[1..12,1..12] of real;
 begin
Writeln('-----------------------------------------------------------------------');
Writeln('Програма за намиране броя на положителните елементи намиращи се,');
Writeln('под главния диагонал на масив с 12 реда и 12 стълба');
Writeln('-----------------------------------------------------------------------');
  for i:= 1 to 12 do
  for j:= 1 to 12 do
   begin
	Write('Въвеждане на масива |Ред,Колона|[', i, ',', j, ']= ');Readln(A[i,j]);
   end;
	begin  {Цикъл за намиране на пол. ел. под гл. диагонал}
	 Br:=0;
	 for i:=2 to 12 do
	 for j:=1 to i-1 do
	 if A[i,j]>0 then Br:=Br+1;

	end;
Writeln('-----------------------------------------------------------------------');
Writeln('Масивът изглежда така:');
Writeln('-----------------------------------------------------------------------');
	begin {Цикъл за отпечатване на получения масив}
	 for i:=1 to 12 do
	  begin
	   for j:=1 to 12 do
	   write(a[i][j]:4:0);
	   writeln;
	  end;
 end;
Writeln('-----------------------------------------------------------------------');
Writeln('Броя на положителните числа под главния диагонал е: ',Br:0:0);
Writeln('-----------------------------------------------------------------------');
Readln;
end.

Новата програма с която този път имам проблем е:

За книгите в една библиотека са зададени: Заглавие, Автор, ISBN (10-цифрено число), дата иа издаване, количество (бр.). Да се състави програма, използваща подпрограми за:

•създаване на файл с информация за книгите;

•промяна на данните за книга по зададен ISBN;

•изчисляване общия брой томове (екземпляри на книги) издадени през дадена; година; намиране и извеждане на заглавията, издадени след зададена дата.

Поздрави на всички ;)

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

Здравейте отново , пак не мога да завърша една задача . И ще ви помоля да ми укажете малко помощ .

Задачата е :

Даден едномерен масив AS, [1<I<10],съдържащ реални числа. Да се сортират елементите на масива в нарастващ ред.

Стигнал съм до тук .

Program Red;
Var AS:Array[1..10] Of Real;
I:Integer;
N,K:Real;
Begin
For I:=1 to 10 do
Write('AS['I']=');
Readln(AS[I]);
End;
For I:=1 to 10 do
If AS [I]<AS[I-1] then
Begin
K:=AS[I];
AS[I]:=AS[I+1];
AS[I+1]:=K
End;

var

ars: array[1..10] of real;

I: Integer;

N, K: Real;

Done: boolean;

begin

for I := 1 to 10 do

begin

Write('AS[', I, ']=');

Readln(ars);

end;

repeat // Сортиране по метода на мехурчето (Bubble Sort)

Done := False; // http://en.wikipedia.org/wiki/Bubble_sort

for I := 1 to 9 do

if ars > ars[i + 1] then

begin

K := ars;

ars := ars[i + 1];

ars[i + 1] := K;

Done := true;

end;

until NOT Done;

for I := 1 to 10 do

begin

Writeln('AS[', I, ']=', ars);

end;

end.

Хора можете ли да помогнете със следната задача на паскал (наистина ми е спешно и ще съм признателен на всеки отзовал се...) Програма на паскал: въвеждане на входни данни от клавиатурата за 4 едномерни масива с различен брой елементи намиране на първото отрицателно число и неговият номер броя на числата в най дългата поредица от съседни отрицателни числа номера на първия елемент от най дългата поредица от съседни положителни числа

Много ще съм благодарен ако някой направи тези 2 програми ;)

1.Да се напише програма,която:
А)въвежда .тройки от символи (a,b,c).За край на въвеждането служи тройката (*,*,*).
Б)кодира всяка тройка по следния начин:
   - ако редицата от символи a,b,c е монотонно растяща,всеки символ от тройката (a,b,c) се заменя със символ,чийто код е с 2 по-голям от кода на текущия;
   -ако редицата a,b,c не е монотонно растяща,всеки символ от тройката (a,b,c) се заменя със символ,чийто код е с 1 по-малък от кода на текущия.
В)извежда кодираните тройки.

2.Всяка редица от равни числа в едномерен сортиран масив се нарича площадка.Да се напише програма,която намира началото и дължината на най-дългата площадка в даден сортиран във възходящ ред едномерен масив.
  • 3 седмици по-късно...

Здравейте! Много Ви моля да ми напишете решението на две задачи. Предварително благодаря на всички, които помогнат. Трябват ми за пътък /23,01/ сутринта. 1. Дадена е декларацията Var k:0..99999; d: array (1..5) of '0'..'9'; Да се напише програма, която: а) записва цифрите на цяло число k в едномерния масив d; б) намира цяло число k, образувано от цифрите, съставящи масива d. 2. Даден е масивът v : array(1..80) of char. Да се напише програма, която определя дали v е симетричен, т.е. четен отляво надясно и от дясно на ляво е един и същ.

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

Здравейте!

Много Ви моля да ми напишете решението на две задачи. Предварително благодаря на всички, които помогнат. Трябват ми за пътък /23,01/ сутринта.

1. Дадена е декларацията

Var k:0..99999;

d: array (1..5) of '0'..'9';

Да се напише програма, която:

а) записва цифрите на цяло число k в едномерния масив d;

б) намира цяло число k, образувано от цифрите, съставящи масива d.

2. Даден е масивът v : array(1..80) of char. Да се напише програма, която определя дали v е симетричен, т.е. четен отляво надясно и от дясно на ляво е един и същ.

Абсолютно нищо не разбрах от условието на задачата.

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

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

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

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

Дарение

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

Бюлетин

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

Профил

Навигация

Търсене

Търсене

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

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