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

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

Kaldata.com - Форуми

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

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

Добре дошли!

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

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

 

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

Featured Replies

Мерси много пич! :clap::yanim: Даже го и разбрах тоя Паскал. Жив и здрав да си!! :wors:

  • 2 седмици по-късно...
  • Отговори 622
  • Прегледи 131,9k
  • Създадено
  • Последен отговор

Здравейте на всичкиSmile Искам да попитам някой който е по-запознат с Паскал били помогнал с изпълнението на тези задачки

http://delfonix.data.bg/zada4i/Zadachi.doc

ще съм Ви изключително благодарен с изпълнението на задачките тъи като са ми от голяма необходимост

Да помогна съм навит. Обаче за да ги напиша - и бумащината е много и не са ми интересни. Само тази с диагонала изглежда по-непозната. Така че ако напишеш нещо, колкото и малко да е, съм готов да го обсъдим :rolleyes: . Плюс това модовете са направили тема за задачи на паскал. По-добре е да пишеш там, защото и някой друг може да намери интересни фрагменти.

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

Здравейте, преди няколко дни ми се наложи да се върна 10 години назад във времето като ми поднесоха за изненада няколко задачи за съставяне на ТП 7.0 . Но на всеки е би било ясно че за 10 години спомените избледняват за наученото по онова време, а мен ме притиска времето доста силно. Искам да помоля някой с познанията на ТП да ми помогне да реша следните няколко примера: 1) Да се състави и изпълни програма, която да проверява взаимното разположение на точка и окръжност в координатната система - дали точката лежи в окръжността или е извън нея. Координатите на точката (XT-YP) и център на окръжността (XC-YC) и радиуса на окръжността rC да се въведат в абсолютни единици от клавиатурата. След проверка, програмата да извежда на екрана съответните съобщения 2) Да се състави програма която да въвежда от клавиатурата параметрите на три фигури - квадрат, равностранен триъгълник и окръжност. Съответно: AS страна на квадрат AT страна на триъгълник DC диаметър на окръжност Програмата да определя фигурата с най-малка площ и фигурата с най-голяма площ и да извежда съответните съобщения на екрана 3) Да се състави програма която да въвежда от клавиатурата едно цяло число и да прроверява дали въведеното число се дели на 5 - ако числото не се дели на 5 да го допълва до първото по-голямо делящо се на 5 число. След проверка да извежда съответните съобщения - да се преработи програмата така че делимостта да не е на 5, а на произволно цяло число въведено от клавиатурата.

Редактирано от stanley56
Неясно заглавие (преглед на промените)

Тази първата е и логическа. Ще трябва да се измисли начин по който да се смятат математически. Третата е елементарна, втората също не е трудна, но и там ще има формули. Ако измислиш формулите - казвай. Предполагам няма да е проблем да напиша нещо утре. Все пак определи и някакви срокове. ПП Сетих се за първата! То било елементарно :speak: .

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

Ами това ми трябва за вторник макс срадя понеже трябва да го представям в четвартак. А за формулите трябва да потърся някаде из нета какви са за тези примери / нямам си и понятие от тази математика :speak: /

Задача 3:

Program devide;

Var 
 a,b:integer;

Begin
  writeln;
  write('Vuvedete delimoto: ');
  readln(a);
  repeat
	write('Vuvedete deliteliat =/= 0: ');
	readln(b);
  until b<>0;

  b:=abs(b);
  if a mod b=0 then writeln('Chislata se deliat') else
	if a>0 then writeln('Chislata ne se deliat... ', (a div b +1)*b) else
	  writeln('Chislata ne se deliat... ', a div b *b);
End.

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

зад3а PROGRAM DIVIDE; var a,b:integer; begin writeln; write('vavedi delimo: '); readln(a); b:=5; if a mod b = 0 then writeln('chisloto ', a , ' se deli na ', b) else repeat if a mod b <> 0 then writeln('chisloto ' , a , ' ne se deli na ', b); a:=a+1; until a mod b = 0; writeln('chisloto ', a , ' se deli na ', b); readln; end. зад3б PROGRAM DIVIDE; var a,b:integer; begin writeln; write('vavedi delimo: '); readln(a); writeln('vavedi delitel'); readln(b); b:=abs(b); if b=0 then writeln('ne moje da se deli na 0') else repeat if a mod b = 0 then writeln('chisloto ', a , ' se deli na ', b) else if a mod b <> 0 then writeln('chisloto ' , a , ' ne se deli na ', b); a:=a+1; until a mod b = 0; writeln('chisloto ', a , ' se deli na ', b); readln; end. а сега да помоля някой да ми помогне с логическите кое лице е по голямо и кое по малко

Program zadanie2;

Var 
skva, stri, sokr: integer;
as, at, dc: integer;

Begin

  writeln;
  write('Въведете страна на квадрат: ');
  readln(as);
  skva:= sqr(as);

  writeln;
  write('Въведете страна на триъгълник: ');
  readln(at);
  stri:= (sqrt(3) * sqr(at)) / 4;

  writeln;
  write('Въведете диаметър на окръжност: ');
  readln(dc);
  sokr:= (3.14 * sqr(dc)) / 4;

  if (skva>stri) and (skva>sokr) then writeln('Лицето на квадрата е най-голямо и е: ', skva);
  if (stri>skva) and (stri>sokr) then writeln('Лицето на триъгълника е най-голямо и е: ', stri);
  if (sokr>skva) and (sokr>stri) then writeln('Лицето на окръжноста е най-голямо и е: ', sokr);
  if (skva<stri) and (skva<sokr) then writeln('Лицето на квадрата е най-малко и е: ', skva);
  if (stri<skva) and (stri<sokr) then writeln('Лицето на триъгълника е най-малко и е: ', stri);
  if (sokr<skva) and (sokr<stri) then writeln('Лицето на окръжноста е най-малко и е: ', sokr);

End.
Възможно най-просто. Дано формулите ми са верни чисто математически. Не си спомням дали можеше да се прави двойна проверка в IF оператора. Ако не, ще трябва да се прибегне до вградени IF-ове.

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

Yvsot, благодаря че се включи :) . Бях започнал да си мисля че само аз ще пиша в темата. Няма проблем да се ползва двойна проверка.

Kardjaliplus, вторият начин също е приемлив, само че доста повече пъти ще се преминава през проверки. Особено когато делителят е голям.Например за делимо 1001 и делител 1000, проверките ще се правят 999 пъти.

Program radius;

var
 xt,yt,xc,yc,rc:real;

Begin

  writeln;
  write('Vuvedete X coordinata na tochkata: ');
  readln(xt);
  write('Vuvedete Y coordinata na tochkata: ');
  readln(yt);
  write('Vuvedete X coordinata na okrugnostta: ');
  readln(xc);
  write('Vuvedete Y coordinata na okrygnostta: ');
  readln(yc);
  repeat
	write('Vuvedete radiusa na okrugnostta >0: ');
	readln(rc);
  until rc>0;

  rc:=rc - sqrt(sqr(xt-xc)+sqr(yt-yc));
  if rc>0 then writeln('Tochkata legi v okrugnostta') else
	if rc<0 then writeln('Tochkata legi izvun okrugnostta') else
	  writeln('Tochkata legi na okrugnostta');

End.

Принципът е следния: Когато се начертае координатната система, разстоянието между центъра на окръжността и точката, може да се разглежда като хипотенуза на правоъгълен триъгълник. Дължината на катетите е съответно модул от xt-xc, yt-yc. Хипотенузата се намира посредством питагоровата теорема. Тогава от радиусът се изважда хипотенузата.

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

Edit:

Хм, разгледах втората задача. Ифовете са правилни, но в случай че лицата са равни, няма да се изпише нищо. Което не е грешно спрямо условието. Даже е добре замислено.Евентуално може да се добави още един if, който да обхване и този случай.

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

И 4-те задачи работят и упражнението е взето :) Искам да благодаря на всички за отделеното време и положения труд

Добър вечер,имам си и аз една задача за решаване ...По принцип залагам на това ,че всеки трябва да се помъчи върху дадената м у задача ,но явно знанията ми не стигат за решаването на тази ...и търся помощ..заданието е следното: Нека е даден едномерен масив от N цели числа.Да се състави програма ,която може да намира: а)първото отрицателно число и неговия номер в редицата; б)броя отрицателни числа; в)броя числа в най-дългата поредица от съседни отрицателни числа; Решението да се оформи във вид на програма -тип меню. Изброените функции на програмата да се реазлизират като подпрограми. ако не е мнн нахално ,гоня някав срок до към вторник..за даскалото..

Здравеи

ниамам много време а и от няколко годинки не сам писал на Pascal но дано ти помогне

type t=array[1..100] of integer;

var a:t;

n:integer;

function f1(a:t;n:integer):integer;

var m,i:integer;

begin

m:=-1;

i:=0;

repeat

inc(i); {ednakvo s i:=i+1}

if a<0 then m:=i;

until (m=-1)or(i=n);

f1:=m;

end;

function f2(a:t;n:integer):integer;

var m,i:integer;

begin

m:=0;

for i:=1 to n do

if a<0 then inc(m);

f2:=m;

end;

function f3(a:t;n:integer):integer;

var br,m,i:integer;

begin

br:=0;

i:=0;

repeat

inc(i);

if a<0 then

begin

repeat

m:=0;

inc(i);

inc(m);

until (a>-1)or(i>=n);

if br<m then br:=m;

end;

until i>=n;

f3:=br;

end;

Ако inc(i); ти прави проблеми го замени с i:=i+1;

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

Е, не става само с copy-paste! Това са функции. Напиши тялото на програмата, която ги извиква и изписва резултата.

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

За мое голямо съжаление явно не ми се получава..Предполагам не е сложно за това си давам оценка - тъп..Ще ви помоля ако може някой да я напише.тханке.

program Z1; var a,s:integer; begin repeat write('a='); readln(a); if a mod 3=0 then s:=s+a; until (a mod 3<>0) ; writeln('S=',s); end. В Паскала съм мноооого добра.

Здравейте на всички.Първо искам да кажа, че прегледах форума и е много хубав. Второ искам да кажа, че съм нов и се нуждая от помощ за 3 задачи на Паскал. Много ще съм благодарен ако някой ги реши. 1. Дадени са два знакови низа D="car" и S="park". Да се напише програма, с която да се слепят двата низа. С оператора IF и въведена буква от потребителя - R или B - да се изведе новополученият низ на екран, съответно с цвят за буквите red или blue, а фона - в white. 2.Съставете програма, която пресмята обиколката на парцел земя, като в началото на програмата потребителят посочва формата на парцела - правоъгълник или окръжност чрез въвеждане на код: 1 - за форма правоъгълник; 2 - за форма окръжност. Резултатът да се изведе във вида: " Обиколката на парцела е ......метра", съответно с цвят за буквите light blue, а фона - в red. 3. Напишете програма, която въвежда знаков низ. Проверява и заменя всеки намерен знак<<к>> във низа със знак <<!>>. Резултатът след замяната да се изведе на екран, съответно с цвят за буквите light blue, а фона - в brown. Много благодаря на който успее да ги реши :P

1. Дадени са два знакови низа D="car" и S="park". Да се напише програма, с която да се слепят двата низа. С оператора IF и въведена буква от потребителя - R или B - да се изведе новополученият низ на екран, съответно с цвят за буквите red или blue, а фона - в white.

Работя по добре отлежали 10 годишни спомени, но...
Program Zadanie1;

uses crt;

var 
d, s, t: string;
k: char;

begin

d:='car';
s:='parк';
t:=concat(d,s);

write('Въведете цвят в който да бъде изписан текста: ');
readln(k);

if ord(k)=82 or ord(k)=114 then
  begin
	TextBackground(white);
	TextColor(red);
	Writeln(t);
  end;

if ord(k)=66 or ord(k)=98 then
  begin
	TextBackground(white);
	TextColor(blue);
	Writeln(t);
  end;

end.
Правя проверка по ascii таблицата, ако символа е различен от "r", "R", "b", "B" - не се вади съобщение.

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

Здравейте на всички.Първо искам да кажа, че прегледах форума и е много хубав. Второ искам да кажа, че съм нов и се нуждая от помощ за 3 задачи на Паскал. Много ще съм благодарен ако някой ги реши.

1. Дадени са два знакови низа D="car" и S="park". Да се напише програма, с която да се слепят двата низа. С оператора IF и въведена буква от потребителя - R или B - да се изведе новополученият низ на екран, съответно с цвят за буквите red или blue, а фона - в white.

2.Съставете програма, която пресмята обиколката на парцел земя, като в началото на програмата потребителят посочва формата на парцела - правоъгълник или окръжност чрез въвеждане на код: 1 - за форма правоъгълник; 2 - за форма окръжност. Резултатът да се изведе във вида: " Обиколката на парцела е ......метра", съответно с цвят за буквите light blue, а фона - в red.

3. Напишете програма, която въвежда знаков низ. Проверява и заменя всеки намерен знак<<к>> във низа със знак <<!>>. Резултатът след замяната да се изведе на екран, съответно с цвят за буквите light blue, а фона - в brown.

Много благодаря на който успее да ги реши :)

За третата задача решението е

Uses Crt;

const s2='<<!>>';

var s,s1:string;

i:integer;

begin

write('s=');

readln(s);

i:=1;

while i<=length(s) do

begin

s1:=copy(s,i,5);

if s1='<<k>>' then

begin

delete (s,i,5);

insert(s2,s,i);

end;

i:=i+1;

end;

TextBackground(brown);

TextColor(lightblue);

writeln(s);

end.

това е малко преправена 1 но решението си е на ycsot

Program Zadanie1;

uses crt;

var

d, s, t: string;

k: char;

begin

d:='car';

s:='park';

t:=concat(d,s);

write('vavedi cvqt v koito da se izvede rezultata R za red b za blue : ');

readln(k);

if (k='R') or (k='r') then

begin

TextBackground(white);

TextColor(red);

Writeln(t);

end

else if (k='b') or (k='B') then

begin

TextBackground(white);

TextColor(blue);

Writeln(t);

end

else writeln(t);

end.

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

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

Нека е даден едномерен масив от N цели числа.Да се състави програма ,която може да намира:

а)първото отрицателно число и неговия номер в редицата;

б)броя отрицателни числа;

в)броя числа в най-дългата поредица от съседни отрицателни числа;

Решението да се оформи във вид на програма -тип меню.

Изброените функции на програмата да се реазлизират като подпрограми.

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

type t=array[1..100] of integer;

var a:t;

n,k,i,p,l:integer;

ch:char;

procedure f1(var a:t;n:integer;var k,m:integer);

var i:integer;

begin

m:=-1;

i:=0;

repeat

inc(i); {ednakvo s i:=i+1}

if a<0 then begin

m:=i;

k:=a;

end;

until (a<0)or(i=n);

end;

function f2(a:t;n:integer):integer;

var m,i:integer;

begin

m:=0;

for i:=1 to n do

if a<0 then inc(m);

f2:=m;

end;

function f3(a:t;n:integer):integer;

var br,m,i:integer;

b:t;

begin

br:=0;

i:=0;

repeat

inc(i);

m:=0;

if a<0 then

begin

repeat

inc(i);

inc(m);

until (a>=0)or(i>=n);

if br<m then br:=m;

end;

until i>=n;

if a[n]<0 then br:=br+1;

f3:=br;

end;

begin

write('broi elementi=');

readln(n);

writeln('elementite na redicata sa');

for i:=1 to n do read(a);

repeat

writeln('za I-to otricatelno i nomera mu izberi 1');

writeln('za broq na otr. chisla izberi 2');

writeln('broi chisla v nai dulgata redica ot<0 chisla-3');

readln(k);

case k of

1: begin

f1(a,n,l,p);

writeln('1-to otricatelno=',l,'s N=',p);

end;

2: writeln(f2(a,n));

3: writeln(f3(a,n));

end;

write('shte rabotish li oshte y/n');

readln(ch);

until ch='n';

end.

За третата задача решението е

Uses Crt;

const s2='<<!>>';

var s,s1:string;

i:integer;

begin

write('s=');

readln(s);

i:=1;

while i<=length(s) do

begin

s1:=copy(s,i,5);

if s1='<<k>>' then

begin

delete (s,i,5);

insert(s2,s,i);

end;

i:=i+1;

end;

TextBackground(brown);

TextColor(lightblue);

writeln(s);

end.

това е малко преправена 1 но решението си е на ycsot

Program Zadanie1;

uses crt;

var

d, s, t: string;

k: char;

begin

d:='car';

s:='park';

t:=concat(d,s);

write('vavedi cvqt v koito da se izvede rezultata R za red b za blue : ');

readln(k);

if (k='R') or (k='r') then

begin

TextBackground(white);

TextColor(red);

Writeln(t);

end

else if (k='b') or (k='B') then

begin

TextBackground(white);

TextColor(blue);

Writeln(t);

end

else writeln(t);

end.

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

Много ви благодаря d_georgieva. Длъжник съм ви.

Не искам да ставам нахален, но дали ще е възможно да ми помогнете за 2-рата задача, защото ще ми трябва за четвъртъка. ;)

Много ви благодаря предварително и още един път искам да благодаря на yvsot и d_georgieva за бързата реакция и оказаната помощ. :angry::) :)

Много ви благодаря d_georgieva. Длъжник съм ви.

Не искам да ставам нахален, но дали ще е възможно да ми помогнете за 2-рата задача, защото ще ми трябва за четвъртъка. :clap:

Много ви благодаря предварително и още един път искам да благодаря на yvsot и d_georgieva за бързата реакция и оказаната помощ. :wors::question::angry22:

program z1;

uses crt;

const pi=3.14;

var n:integer;

ch:char;

procedure Okrujnost;

var l,r:real;

begin

write('vavedi radius na parcela:');

readln®;

l:=2*pi*r;

TextBackground(red);

TextColor(lightblue);

writeln('Obikolkata na parcela e ',l:10:3,' metra');

end;

procedure Pravougulnik;

var a,b,P:real;

begin

write('vavedi duljina i shirochina na parcela:');

readln(a,b);

P:=2*(a+b);

TextBackground(red);

TextColor(lightblue);

writeln('Obikolkata na parcela e ',P:10:3,' metra');

end;

begin

repeat

writeln(' Izberi kakva forma ima tvoqt parcel');

writeln('1-pravougulnik');

writeln('2- na okrujnost');

repeat

readln(n);

until n in [1,2];

case n of

1:pravougulnik;

2:okrujnost;

end;

write('shte rabotish li oshte y/n ');

readln(ch);

until ch='n';

end.

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

program z1;

uses crt;

const pi=3.14;

var n:integer;

ch:char;

procedure Okrujnost;

var l,r:real;

begin

write('vavedi radius na parcela:');

readln®;

l:=2*pi*r;

TextBackground(red);

TextColor(lightblue);

writeln('Obikolkata na parcela e ',l:10:3,' metra');

end;

procedure Pravougulnik;

var a,b,P:real;

begin

write('vavedi duljina i shirochina na parcela:');

readln(a,b);

P:=2*(a+b);

TextBackground(red);

TextColor(lightblue);

writeln('Obikolkata na parcela e ',P:10:3,' metra');

end;

begin

repeat

writeln(' Izberi kakva forma ima tvoqt parcel');

writeln('1-pravougulnik');

writeln('2- na okrujnost');

repeat

readln(n);

until n in [1,2];

case n of

1:pravougulnik;

2:okrujnost;

end;

write('shte rabotish li oshte y/n ');

readln(ch);

until ch='n';

end.

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

Много и искренно ти благодаря. ;):);)

Ако някой попита ще те препоръчам веднага. Публикувано изображение;)

Радвам се че повече хора се включиха в темата :wors: .

Ще си позволя да дам няколко съвета, надявам се полезни.

Използвайте опциите за код при публикуване - както yvsot. Това прави програмите по-четливи.

Избягвайте да цитирате цели програми - нали не искате да има няколко поста на цяла страница ?

Ако бързате с решенията споменете някакви срокове. Няма да обръщам внимание на задачи, които хем са спешни, хем не се знае за кога!

Здравейте, имам да правя курсова задача с масиви, но има 2 неща които ме притесняват в нея тъй като въобще не сме ги учили в училище, а и на лекцийте все още не сме ги взели, та ще съм ви много благодарен ако някой ми помогне до колкото може с нея Публикувано изображение :

Да се състави програма за обработка на масива Е[10,10] където данните са реални числа в интервала -1000,1000

Съставената програма да извършва следните действия:

¤Отпечатване на условието на задачата и името на автора

¤Въвеждане на входните данни

¤Отпечатване на входните данни

¤А) да се образува едномерен масив С, елементите на който са елементите от масива А със сбор от индексите си четно число

¤Б)Полученият масив да се сортира по големина

¤Отпечатване на получените резултати след обработка

¤Входните данни да се четат от файла с име DATA.DAT

До къде съм аз Публикувано изображение

Program KJAHKSH;

const

k = 10;

type

typeMas1 = array[1..k,1..k] of real;

var A : TypeMas1;

I : Real;

res : Real;

Flag : Boolean;

begin

for I :=1 to k do

repeat

write('vavedete chislo A[',I,'] = ');

readln(A);

until ((A >=-1000) and (A <=1000));

writeln;

writeln('vyvedenite stojnosti na masiva E sa: ');

writeln;

for I := 1 to k do

write(A : 4: 2);

writeln;

repeat

flag:=True;

if A > A[i+1] then

begin Flag:=false;

Res:=A

A:=A[i+1]

A[+1]:=Res

end;

until Flag;

writeln('sortiraniqt masiv C e: ');

for I := 1 to m do

write(A:4:2]);

readln;

end.

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

Срокът ми на предаване е до Сряда, мерси предварително :whist:

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

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

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

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

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

Дарение

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

Бюлетин

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

Профил

Навигация

Търсене

Търсене

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

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