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

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

Kaldata.com - Форуми

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

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

Добре дошли!

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

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

 

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

Featured Replies

Здравейте(отново) ;)

имам лек проблем(от незнание или объркване нямам представа вече) с една задачка.Ето го и условието:

Да се състави главна програма за обработка на два двумерни масива А[10,10] и B[12,12]. Данните и в двата масива са в интервала  [-500 - 500]. Съответните подпрограми да извършват следните обработки:
·	   извеждане на условието на задачата и името на автора
·	   въвеждане на входните данни;
·	   извеждане на входните данни;
·	   минималните елементи на всеки ред да се изнесат в първата колонка, а максималните - в последната колонка; Да се определи броя на максималните елементи по-големи от зададено число М и броя на минималните елементи по-малки от зададено число N;
·	   да се изведат резултатите;
·	   резултатите да се запишат във външен файл на диск С: с име DATA07.DAT.
До къде съм стигнал:

program sedem;

const
p=4;
q=3;
var
z,x:integer;
A:array[1..p,1..p] of integer;
B:array[1..q,1..q] of integer;
i,j:integer;
k,l:integer;
n:byte;
Procedure autor;
begin
writeln('uslovieto :');
writeln('avtor');
end;
procedure enterMass;
begin
for i := 1 to p do
for j := 1 to p do
repeat
writeln('A[',I,',',J,'] = ');
readln(A[I,J]);
until ((A[I,J] >= -500) and (A[I,J] <= 500));
writeln;
for K := 1 to q do
for l:=1 to q do
repeat
writeln('B[',K,',',L,'] = ');
readln(B[K,L]);
until ((B[K,L] >= -500) and (B[K,L] <=500));
writeln;
end;
procedure outmass;
begin
for I :=1 to p do
begin
for J:=1 to p do
write(A[I,J],'|');
writeln;
end;
writeln;
for K:=1 to q do
begin
for l:=1 to q do
write(B[K,L],'|');
writeln;
end;
end;
procedure filee;
var i:byte;
outfile:text;
begin
assign(outfile, 'Data.dat');
rewrite(outfile);
for i:=1 to n do write(outfile,A[I,J],' ');
writeln(outfile);
close(outfile);
end;
begin
autor;
entermass;
outmass;
readln;
filee;
end.
Та, нямам си представа как да го направя това с подреждането.Ясно е, че трябва да се сортира всеки ред, но това ми е слабо и то много, също така ми е мъгла това с броячът как се прави(предполагам е лесно, но за кой предмет да ча 1-во Публикувано изображение ).Също така нещо неще да изписва масива А във файлът Дата.дат, създава го, но не пише, ще съм много благодарен ако пак има някаква помощ;)
  • Отговори 622
  • Прегледи 131,9k
  • Създадено
  • Последен отговор

Малко ме мързи в момента...

Ето ти запълването, извеждането и намирането на най-малка и най-голяма стойност в редовете на масивите...

Другото нататък...

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  A:Array[1..10, 1..10] of Integer;
  B:Array[1..12, 1..12] of Integer;
procedure autor;
  begin
	writeln('uslovieto :');
	writeln('avtor :');
  end;

procedure enterMass;
var
  i, j, r:Integer;
label
  Back, Back2;
begin
  Randomize;
  for i := 1 to 10 do
	begin
	  for j := 1 to 10 do
		begin
		  Back:
		  writeln('Zadavane na stojnost za A[', i,', ', j,']');
		  //readln(r);
		  r := Random(500);
		  if (r > 500) or (r < -500) then
			begin
			  writeln('Zadali ste stojnost po-golqma ot 500 ili po-malka ot -' +
						'500');
			  goto Back;
			end;
		  A[i, j] := r;
		end;

	end;
  for i := 1 to 12 do
	begin
	  for j := 1 to 12 do
		begin
		  Back2:
		  writeln('Zadavane na stojnost za B[', i,', ', j,']');
		  //readln(r);
		  r := Random(500);
		  if (r > 500) or (r < -500) then
			begin
			  writeln('Zadali ste stojnost po-golqma ot 500 ili po-malka ot -' +
						'500');
			  goto Back2;
			end;

			B[i, j] := r;
		end;

	end;
  writeln('Masivite sa zapylneni...');
end;

procedure outMass;
var
  i, j:Integer;
begin
  for i := 1 to 10 do
	begin
	  for j := 1 to 10 do
		begin
		  writeln('Stojnosta na A[', i, ', ', j,'] e: ',A[i, j]);
		end;
	end;
  for i := 1 to 12 do
	begin
	  for j := 1 to 12 do
		begin
		  writeln('Stojnosta na B[', i, ', ', j,'] e: ',B[i, j]);
		end;
	end;
end;

procedure low_high;
var
  i, j, small, big:Integer;
begin
  writeln('Maksimalni i minimalni stojnosti v redovete na masiv A:');
  for i := 1 to 10 do
	begin
	  small := A[i, 1];
	  big := A[i, 1];
	  for j := 1 to 10 do
		begin
		  if small > A[i, j] then
			begin
			  small := A[i, j];
			end;
		  if big < A[i, j] then
			begin
			  big := A[i, j];
			end;
		end;
	  writeln('Naj-malkata stojnost za red ', i, ' e: ', small, ', a naj-golqmata e: ', big);
	end;
  writeln('Maksimalni i minimalni stojnosti v redovete na masiv B:');
  for i := 1 to 12 do
	begin
	  small := B[i, 1];
	  big := B[i, 1];
	  for j := 1 to 12 do
		begin
		  if small > B[i, j] then
			begin
			  small := B[i, j];
			end;
		  if big < B[i, j] then
			begin
			  big := B[i, j];
			end;
		end;
	  writeln('Naj-malkata stojnost za red ', i, ' e: ', small, ', a naj-golqmata e: ', big);
	end;
end;

begin
  { TODO -oUser -cConsole Main : Insert code here }
  autor;
  enterMass;
  outMass;
  low_high;
  readln;
end.
Надявам се ще се досетиш защо са коментираните редове: //readln( r ); и тези под тях: r := Random(500);...

Просто не ми се въвеждат толкова числа... :super:

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

1.Да се напише функция за превръшане на ъгли от градуси в радиани по формулата rad=pi/180*beta където бета са градусите на дадения ъгъл.Използвайте определена функция за превръшането в радиани на ъглите Y(гама)=3 градуса и d(делта)=147 градуса 2.В даден масив a със n елемента да се да се преброят и отпечатат различните елементи

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

Може ли някой да ми помогне с тази задача? ;) 69. Да се състави програма за обработка на масива А[12,6] съставен от реални числа със стойности в интервала [0,99.9]. Съответните подпрограми да извършват следните действия: • Отпечатване на условието на задачата и отпечатване на автора на програмата. • Въвеждане на входните данни. • Отпечатване на входните данни. • Да се образува нов масив В(6), елементите на които са сумите от елементите по колони. • Да се отпечатат получените резултати по време и след обработката. А ето до каде сам стигнала аз: program zad_69; const m = 2; n = 3; var A: array [1..m,1..n] of real; B: array [1..n] of real; i, j : integer; procedure ime; begin writeln('Iveta Dimitrova Dimitrova'); writeln; writeln('fak.N 071207003, fak. EMF, spec. TTT, gr.26a'); writeln; end; procedure uslovie; begin writeln; writeln('Da se sastavi programa za obrabotka na masiva A[12,6]'); writeln('Sastaven ot realni chisla sas stoinosti v intervala [0,99.9].'); writeln('Saotvetnite podprogrami da izvarshvat slednite deistviq:'); writeln; writeln('-otpechatvane na uslovieto na zadachata i otpechatvane na avtora na programata.'); writeln; writeln('-vavejdane na vhodnite danni.'); writeln; writeln('-otpechatvane na vhodnite danni.'); writeln; writeln('-da se obrazuva nov masiv B(6), elementite na koito sa sumite ot elementite po koloni.'); writeln; writeln('-da se otpecharat poluchenite rezultati po vreme i sled obrabotkata.'); writeln; end; procedure enter; begin for i:= 1 to m do for j := 1 to n do repeat write('[',i,',',j,'] = '); readln(A[i,j]); until ((A[i,j] >= 0) and (A[i,j] <= 99.9)); writeln; end; procedure out; begin for i := 1 to m do begin for j :=1 to n do write(A[i,j]:6:2); writeln; end; end; procedure masB; var SUM:real; k:integer; begin sum:=0 ; k:=0; for j := 1 to n do begin for i := 1 to m do sum:= sum + a[i,j]; k:= k+1; end; b[j]:=sum; writeln('sumata e ',sum:8:2); writeln; end; begin ime; writeln; uslovie; writeln; writeln('Vavedete stoinostite na a'); enter; writeln; out; writeln; masB; for j:=1 to n do write(b[j]:8:2); writeln; writeln; readln; end. Незнам как да задам на програмата да сумира точно тези колонки. Благодаря предварително за помоща! ;)

Да се състави програма за обработка на два масива (матрици) A[N,N] и B[N,N] , където данните са цели числа в интервала [-1000-1000]. Да се извършват следните действия:

- отпечатване на условието на задачата

- отпечатване на автора на програмата

- въвеждане на входни данни

- отпечатване на входните данни

1) да се нулират елементите в масива А които са по-големи от МАХ елемент на съответстващатата колона от масива В

2) да се определи броя на променените елементи в масива А

- отпечатване на получените резултати след обработка на т.1 и т.2

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

Имам проблем с курсовата. Трябва да я предам до 10 Декември, а някои неща нямам идея как да ги направя...

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

Това с което не знам как да го направя е извеждането/ изтриването на данни за дадено име и момента с рожденните дни...

ПП: Когато имам възможност тия дни ще пусна какво точно съм направил. Доволен съм на всякаква помощ/ насоки Публикувано изображение

Свърших с всичко друго ама програмирането остана Публикувано изображение опитвах четох учебника и тн...ама само тази пародийка успях да напиша. Ако някой ми помогне ще съм му много благодарен. И да с файла много се оплесках както и със записите към него (менюто ми е най-читаво Публикувано изображение )...

Program Kurs (F);
uses crt, dos;
type
StringType = string[25];
bday =record
	 Year: 1980..2099;
	 Month: 1..12;
	 day: 1..31;
	 end;
kategoriq =(priqtel, rodnina, kolega);
Person =record
			  Name: StringType;
			  Phone: Integer;
			  Adress: StringType;
			  Email: Char;
			  Bday: bday;
			  Category: kategoriq;
			  end;
FileType =File of Person;
Izbor = (da, ne);
var
Again, Flag: Boolean;
X, I: Integer;
A: Izbor;
F: FileType;
Day: bday;
Procedure Menu;
begin
	 Writeln ('1 - Dobavqne na novi danni');
	 Writeln ('2 - Izvewdane na danni za ime');
	 Writeln ('3 - Iztrivane na dannite za ime');
	 Writeln ('4 - Aktualizirane na danni za ime');
	 Writeln ('5 - Izvejdane na danni za kategoriq');
	 Writeln ('6 - Proverka za predstoqshti rojdenni dni');
	 Writeln ('7 - Napuskane na programata');
Writeln;
end;
begin
Again:= True;
clrscr;
for I:=1 to 80 do Write ('*');
Writeln ('Kursova Rabota na Xxxxx Xxxxx, Spec: KST, FakNO: xxxxxxxxx');
For I:=1 to 80 do Write ('*');
Writeln;
Repeat
begin
Assign (F,'D:\');
Menu;
Readln (X);
Writeln;
Case X of
	   1 :Rewrite (F);
	   With F do begin
					  Writeln ('Vavedete ime: ');
					  Read (Name);
					  Write (F, Name);
					  Writeln ('Telefon: ');
					  Read (Phone);
					  Write (F, Phone);
					  Writeln ('Adress: ');
					  Read (Adress);
					  Write (F, Adress);
					  Writeln ('e-mail: ');
					  Read (Email);
					  Write (F, Email);
					  Writeln ('B-day(dd/mm/yyyy): ');
					  Read (Bday.day,month,year);
					  Write (F, Bday.day,month,year);
					  Writeln ('Izberete kategoriq: ');
					  Read (Category);
					  Write (F, Category);
	   end;
	   2 :Reset (F);
	   With F do begin
					  Writeln ('Vavedete imeto za koeto iskate informaciq: ');
					  Read (Name);
					  Seek (A, Name);
					  Writeln (Name);
					  Writeln (Phone);
					  Writeln (Adress);
					  Writeln (Email);
					  Writeln (Bday)
					  Writeln (Category);
	   end;
	   3 :Reset (F);
	   With F do begin
					  Writeln ('Vavedete imeto koeto iskate da iztriete: ');
					  Read (Name);
					  Seek (F, Name);
					  Truncate (F);
	   end;
	   4 :Reset (F);
	   With F do begin
					  Writeln ('Vavedete imeto za koeto iskate da aktualizirate dannite: ');
					  Read (Name);
					  Seek (F, Name);
					  Truncate (F);
					  Writeln ('Vavedete noviq telefon na ', Name, ' : ');
					  Read (Phone);
					  Write (F, Phone);
					  Writeln ('Vavedete noviq adress na ', Name, ' : ');
					  Read (Adress);
					  Write (F, Adress);
					  Writeln ('Vavedete noviq e-mail na ', Name, ' : ');
					  Read (Email);
					  Write (F, Email);
					  Writeln ('Shte aktualizirate li b-day na ', Name,' ?');
					  Readln (A);
					  If A= da then
								begin
								Writeln ('Vavedete noviq b-day: ');
								Read (Bday);
								Write (F, Bday);
								end;
					  else if A= ne then
									 begin
									 Writeln ('Shte promenqte li kategoriqta na ', Name, ' ?');
									 Readln (A);
									 If A= da then
											   begin
											   Writeln ('Vavedete kategoriqta: ');
											   Readln (Category);
											   Write (F, Category);
											   end;
	   5 :Reset (F);
	   With F do begin
				 Writeln ('Vavedete kategoriqta za koqto iskate danni: ');
				 Read (Category);
				 Flag:=False
				 While Flag:=False do
					   begin
					   {Proverka za vsqko ime dali kategoriqta}
					   {mu savpda s vavedenata i ako da -> vavejdane na danni}
					   If Category;
					   If EOF(F) Flag:=True;
					   end;
				 end;
	   6 :Day:=GetDate;
	   Flag:=False
	   begin
			  For {Proverka za vsqko ime};
			  If Day.Month,Day<=Person.Bday.Month,Day<=Day.Month,(Day+7) then
			  begin
			  Writeln (Person.Name, ' ima rojden den na ', Person.Bday);
			  Flag:=True;
			  end;
	   If Flag=False Writeln ('Nqma predstoqshti rojdeni dni!');
	   end;
	   7 :Again:=False;
	   end;
end;
until Again=False;
end.

Първата грешка, която ми се набива на очи е че никъде не затваряш файла. Просто трябва да свикнеш да го отваряш в началото на функцията и да го затваряш в края. Това минава за груба грешка. Другото нещо, като ученик си играх с това Truncate и така и не успях да го накарам да заработи. Възможно е грешката да е била моя. Иначе нищо не мога да ти обещая, защото си имам мои задачи.

Здравейте. Значи имам следната задача:

Даден е текст от думи, които могат да бъдат разделени с ',' , с ';' или с '-' . Изреченията са разделени с точка, въпросителна или запетайка. Интервали може да има между думите и между знаците. Да се намери броя думи и изречения.

Направил съм това :

Program textinput;
Uses CRT;
type space=(' ' , ';' , '-');
type sign=('!'  , '?' , '.');
var
nextchar,simplechar:char;
words,sentences,i:integer;
kbinput:string;
begin
words:=1;
sentences:=0;
writeln('Input text - terminate with return ');
read(kbinput);
while not eoln do
begin
read(nextchar);
if nextchar=space then words:=words+1;
if nextchar=sign then sentences:=sentences+1;
end;
for i:=1 to length(kbinput) do
begin
if simplechar[i]=space and simplechar[i+1]=space then words:=words-1;
if simplechar[i]=sign and simplechar[i+ 1]=sign then sentences:=sentences-1;
if simplechar[i]=space and simplechar[i+1]=sign then
if simplechar[i-1]=sign then do begin
words:=words-1; sentences:=sentences-1;
else words:=words-1;
end;

writeln('Number of words: ', words);
writeln('Number of sentences: ',sentences);
end.

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

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

някой може ли да ми помогне с една програма на паскал че не разбирам почти нищо : да се състави програма за обработка на масива А[N,N] където данните са реални числа в интервала [-1000-1000].Съответните подпрограмида извършват следните действия: -отпечатване на условието на задачата -отпечатване на автора на програмата -въвеждане на входните данни -отпечатване на входните данни -а)да се образува едномерен масив С, елементите на който са елементите от масива А намиращи се под главниа диагонал,б) получения масив да се сортира по големина -отпечатване на получените резултати след обработка а) и обработка б) Програмата трябва да се направи чрез подпрограми процедури, ето и до къде съм стигнал: program KR2; uses WinCrt; const n=50; type matrix=array[1..n,1..n]of integer; red= array[1..n] of integer; var Z: matrix; D,E:red; w:char; k,s:integer; f1:text; procedure name; begin writeln (' This program was made by xxxxx'); end; procedure uslovie; begin Write('Da se sustavi programa za obrabotka na masiv A[N,N] kudeto'); Writeln('Dannite sa realni chisla v intervala [-1000 , 1000].'); Write('Da se obrazuva ednomeren masiv C, elementite na koito sa elementite na A[N,N]'); Writeln('namirashti se pod glavniq diagonal. Polucheniq masiv da se sortira po golemina.'); Writeln; end; procedure Input( q:integer; var z:matrix); var i,j:integer; label 1; begin for i:=1 to q do for j:=1 to q do begin 1: write('Enter ',w,'[',i,',',j,']: '); readln(z[i,j]); if (z[i,j]>-1000) or (z[i,j]<1000) then begin Writeln ('The valwe is not in the interval [1000,-1000]. Enter it again!'); goto 1; end; end; end;

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

Значи имам да правя курсова работа. Бях я пуснал в темата за задачи на Паскал, но ситуацията се промени. Задачата е: "Даден е текст от думи, разделени с ',' ';' ' ' или '-' . Изреченията могат да завършват на '.' '!' или '?' . Интервал може да има между думите и между знаците. Да се изведе броя на думите и изреченията.

Аз направих това:

Program counting;
var
userfile:text;
kbinput, filename, input:string;
i,j,words,sentences:integer;
begin
words=1;
sentences=0;
writeln('Choose a number:');
writeln('1. Enter the text from the keyboard');
writeln('2. Enter the text from a file');
readln(i);
if i=1 then
begin
writeln ('Enter the text now: ');
readln(input)
end;
if i=2 then
begin
writeln('Enter the full path to the file');
readln(filename);
assign(userfile, filename + '.txt');
reset(userfile);
repeat
readln(userfile, input);
writeln(input);
until eof(userfile);
end;
for j:=1 to length(input) do
begin
if input[j]=' ' or input[j]=';' or input[j]='-' or input[j]=',' then
if input[j+1]=' ' or input[j+1]=';' or input[j+1]='-'or input[j+1]=',' then words:=words
else words:=words+1;
if input[j]='!' or input[j]='?' or input[j]='.' or input[j]=',' then
if input[j-1]=' ' then if input [j-2]='!' or input[j-2]='?' or input[j-2]='.' then (нищо ?)
else words:=words-1;
if input[j]='!' or input[j]='?' or input[j]='.' then
if input[j+1]='!' or input[j+1]='?' or input[j+1]='.' or input[j+1]=' '
then if input[j+1]=' ' then
if input[j+2]='!' or input[j+2]='?' or input[j+2]='.' then words:=words-1;
else do
begin
sentences:=sentences+1;
words:=words-1;
end;
writeln('Number of words: ', words);
writeln('Number of sentences', sentences);
end.
Работата е, че начина е верен, но езика Pascal не поддържа operator overloading. Молбата ми е да ми кажете как да стане без operator overloading , или пък да го напишете същото на C++. Благодаря много предварително.

И какво налага използването на този оператор ? А обектно-ориентираният Pascal поддържа Overload.

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

И какво налага използването на този оператор ?

А обектно-ориентираният Pascal поддържа Overload.

Грешката е моя. Значи грешката, която ми изписва компилатора (Dev-Pascal) е Operator is not overloaded и се изписва наистина много пъти.

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

Имам да правя курсова работа по информатика и трябва да я предам по възможност утре.От доста време се мъча и все нищо не се получава.Много ще съм благодарен ако някои може да ми помогне. Условието на задачата е следното : Конструкторско бюро прави изпитания и анализ на разхода на гориво от няколко експериментални прототипа(не повече от 20 броя) Да се състави ГлПр,обменяща данни с ПодПр само с параметри.Да се използват ПП за:  въвеждане на стойностите на К реални елемента на едномерен масив С от файл или клавиатура;  намиране на ср.стойност от елементите на масив A,N реални числа;  извеждане на масив на екрана;  запис на масив във файл; Програмата да въвежда за две серии изпитания съответните:брои прототипи и измерени разходи.Да намери и отпечата броя на стойностите под ср.стойност за съответната серия ПП : Не влизайте в техническия !!!

Имам да правя курсова работа по информатика и трябва да я предам по възможност утре.От доста време се мъча и все нищо не се получава.Много ще съм благодарен ако някои може да ми помогне.

Условието на задачата е следното :

Конструкторско бюро прави изпитания и анализ на разхода на гориво от няколко експериментални прототипа(не повече от 20 броя)

Да се състави ГлПр,обменяща данни с ПодПр само с параметри.Да се използват ПП за:

 въвеждане на стойностите на К реални елемента на едномерен масив С от файл или клавиатура;

 намиране на ср.стойност от елементите на масив A,N реални числа;

 извеждане на масив на екрана;

 запис на масив във файл;

Програмата да въвежда за две серии изпитания съответните:брои прототипи и измерени разходи.Да намери и отпечата броя на стойностите под ср.стойност за съответната серия

ПП : Не влизайте в техническия !!!

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

Program Kurs1;
Uses crt;
Const Brprot=20;
Type Mas=array[1..Brprot] of real;
Var
   size1,size2:integer;
   M,N:Mas;
Procedure Vyvej ( size:integer;ime:string;Var A:mas );
Var
   i,otfail:integer;
   fail:text;
   chis:real;
Begin
	 repeat write ( 'Vyvedete "1" za vzimane na danni ot fail ili "2" za vyvejdane ot klaviatura : ' );
	 read ( otfail );
	 until ( otfail=1 ) or ( otfail=2 );
	 if otfail=1 then begin
		assign ( fail,ime );
		reset ( fail );
		for i:=1 to size do begin
			read ( fail,chis );
			a[i]:=chis;
			writeln ( i,')',A[i]:6:2,'l' );
		end;
	 writeln ( 'Dannite sa vzeti uspeshno!' );
	 end
	 else if otfail=2 then begin
			 for i:=1 to size do begin
				 write ( 'Prototip [',i,'] = ' );
				 readln ( A[i] );
			 end;
	 end;
end;
Procedure save ( size:integer;A:mas;ime:string );
Var
   i:integer;
   fail:text;
Begin
	 assign ( fail,ime );
	 rewrite ( fail );
	 for i:=1 to size do begin
		 write ( fail,A[i]:6:2,' ');
		 end;
	 close ( fail );
end;
Procedure Srst ( size:integer;A:mas );
Var
   sr,sum:real;
   i:integer;
Begin
	 sum:=0;
	 for i:=1 to size do
	 sum:=sum+A[i];
	 sr:=sum/size;
	 writeln ( 'Srednia razhod za seriata e : ',sr:4:2 );
	 if A[i]<sr then begin
		writeln ( 'Prototip ',i,' e s razhod pod sredniq za seriqta' );
		end;
end;
Begin
	 clrscr;
	 writeln ( '								   SERIA 1 ' );
	 repeat write ( 'Molq vyvedete broq prototipi ot seria 1 ( 1-',Brprot,' ) = ' );
	 readln ( size1 );
	 until ( size1<=Brprot ) and ( size1>=1 );
	 vyvej ( size1,'seria1',M );
	 srst ( size1,M );
	 save ( size1,M,'seria1' );writeln;
	 writeln ( '								   SERIA 2 ' );
	 repeat write ( 'Molq vyvedete broq prototipi ot seria 2 ( 1-',Brprot,' ) = ' );
	 readln ( size2 );
	 until ( size2<=Brprot ) and ( size2>=1 );
	 vyvej ( size2,'seria2',N );
	 srst ( size2,N );
	 save ( size2,N,'seria2' );writeln;
	 writeln ( 'Natisnete ENTER za krai' );
	 readln;readln;
end.

ако може някои които го разбира повечко тоя pascal да ми даде няква оценка на тва да знам дали става :offtopic_s:

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

Извинете, дали ще можете да ми помогнете с една задачка:

Да се напише програма, която създава файл c:\Ocenki.dat, който съдържа 6 записа - срочните оценки по даден предмет. След това извежда заглавен текст "Sreden Uspeh", прочита съдържанието на файла и изчислява средния успех.

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

Здравйте на всички. :ph34r: Имам един проблем със една задача на PASCAL.Преди съм учила C++ и там се сщам как ще стане, обаче от този паскал и идея си нямам Публикувано изображение Много ще съм ви благодарна ако ми поногнете... ето я и нея:

Съставете клас Person със свойства:име,възраст,заплата.

1.Въведете n броя (n<=100) обекти от този клас и ги запишете в масив;

2.Отпечатайте въведените обекти;

3.Изведете името и възрастта на човека с най-висока заплата.

Още веднъж ви благодаря предварително... :rolleyes:

Здравейте!Моля ви за помощ за следните задачи: S=1+3+5 ........ n -до n<50 S=2+4+6 .........n -до n>50 S=1/2+2/3+......+50/51 Целта е да се напише програма за намиране сумата на числата от .... до .... (от 1 до 50 с т.н.,както е в задачите)!Моля ви ,помогайте!!!!

Значи имам да правя курсова работа. Бях я пуснал в темата за задачи на Паскал, но ситуацията се промени. Задачата е: "Даден е текст от думи, разделени с ',' ';' ' ' или '-' . Изреченията могат да завършват на '.' '!' или '?' . Интервал може да има между думите и между знаците. Да се изведе броя на думите и изреченията.

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

Извинете, дали ще можете да ми помогнете с една задачка:

Да се напише програма, която създава файл c:\Ocenki.dat, който съдържа 6 записа - срочните оценки по даден предмет. След това извежда заглавен текст "Sreden Uspeh", прочита съдържанието на файла и изчислява средния успех.

Алгоритъмът на програмата, която ти трябва е доста семпъл... Ще ти помогна утре! ;)

Поздрави!

Да се напише програма, която създава файл c:\Ocenki.dat, който съдържа 6 записа - срочните оценки по даден предмет. След това извежда заглавен текст "Sreden Uspeh", прочита съдържанието на файла и изчислява средния успех.

Привет!

Ето какво написах, както обещах.. Надявам се да съм разбрал правилно условието на задачата. :P Ако ли не, моля автора на поста да поясни още! Смятам, че алгоритъмът е доста разбираем, за тези, които поне малко са учили Паскал.

PROGRAM ZA_GENKATA10;

VAR  F:TEXT;
	 PR1,PR2,PR3,PR4,PR5,PR6:INTEGER;
	 SRUSPEH:REAL;


PROCEDURE VHOD;
 BEGIN
  WRITE('PREDMET1 - ');
  READLN(PR1);
  WRITE('PREDMET2 - ');
  READLN(PR2);
  WRITE('PREDMET3 - ');
  READLN(PR3);
  WRITE('PREDMET4 - ');
  READLN(PR4);
  WRITE('PREDMET5 - ');
  READLN(PR5);
  WRITE('PREDMET6 - ');
  READLN(PR6);

  WRITE(F,'PREDMET1 - ',PR1);
  WRITELN(F);
  WRITE(F,'PREDMET2 - ',PR2);
  WRITELN(F);
  WRITE(F,'PREDMET3 - ',PR3);
  WRITELN(F);
  WRITE(F,'PREDMET4 - ',PR4);
  WRITELN(F);
  WRITE(F,'PREDMET5 - ',PR5);
  WRITELN(F);
  WRITE(F,'PREDMET6 - ',PR6);
  WRITELN(F);
 END;

PROCEDURE SMQTANE;
 BEGIN
  SRUSPEH := 0;
  SRUSPEH := (PR1+PR2+PR3+PR4+PR5+PR6)/6;
  WRITE(F,'SREDEN USPEH - ',SRUSPEH:4:2);
 END;

BEGIN
  ASSIGN(F,'C:\OCENKI.TXT');
  REWRITE(F);
  VHOD;
  WRITELN(F);
  WRITELN(F);
  SMQTANE;
  CLOSE(F);
END.

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

Функцията ASSIGN, както се досещате създава текстов файл (F) в C:\, в който ще попълваме! REWRITE(F) - Подготвяме файла за запис. WRITELN(F) - Поставяме нов ред в текстовия файл (За въвеждане на текст е недопустима. Трябва да се ползва WRITE(F,'...'); за текст!). CLOSE(F) - затваряме файла и той е готов за четене! При желание може да се добави проверка, дали оценката е от 2 до 6, но аз сметнах, че така е добре. Разбира се, можеш да си добавиш. :) Въпрос на желание...

Ами това е. Надявам се да съм помогнал!

Поздрави и лек ден!

Здравейте!Моля ви за помощ за следните задачи:

S=1+3+5 ........ n -до n<50

S=2+4+6 .........n -до n>50

S=1/2+2/3+......+50/51

Целта е да се напише програма за намиране сумата на числата от .... до .... (от 1 до 50 с т.н.,както е в задачите)!Моля ви ,помогайте!!!!

program z1;

var i,n,s:integer;

begin

write('n=');

readln(n);

s:=0;

for i:=1 to n do

if odd (i) then s:=s+i;

writeln('s=',s);

end.

за втората вместо if odd....пишеш if not odd.....обаче мисля че си сбъркала условието би трябвало да е n<50 а третата

ти пиша само цикъла че ме мързи за цялата

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

s:=0;

for i:=1 to 50 do s:=s+i/(i+1);

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

Привет!

Ето какво написах, както обещах.. Надявам се да съм разбрал правилно условието на задачата. :angry: Ако ли не, моля автора на поста да поясни още! Смятам, че алгоритъмът е доста разбираем, за тези, които поне малко са учили Паскал.

PROGRAM ZA_GENKATA10;

VAR  F:TEXT;
	 PR1,PR2,PR3,PR4,PR5,PR6:INTEGER;
	 SRUSPEH:REAL;


PROCEDURE VHOD;
 BEGIN
  WRITE('PREDMET1 - ');
  READLN(PR1);
  WRITE('PREDMET2 - ');
  READLN(PR2);
  WRITE('PREDMET3 - ');
  READLN(PR3);
  WRITE('PREDMET4 - ');
  READLN(PR4);
  WRITE('PREDMET5 - ');
  READLN(PR5);
  WRITE('PREDMET6 - ');
  READLN(PR6);

  WRITE(F,'PREDMET1 - ',PR1);
  WRITELN(F);
  WRITE(F,'PREDMET2 - ',PR2);
  WRITELN(F);
  WRITE(F,'PREDMET3 - ',PR3);
  WRITELN(F);
  WRITE(F,'PREDMET4 - ',PR4);
  WRITELN(F);
  WRITE(F,'PREDMET5 - ',PR5);
  WRITELN(F);
  WRITE(F,'PREDMET6 - ',PR6);
  WRITELN(F);
 END;

PROCEDURE SMQTANE;
 BEGIN
  SRUSPEH := 0;
  SRUSPEH := (PR1+PR2+PR3+PR4+PR5+PR6)/6;
  WRITE(F,'SREDEN USPEH - ',SRUSPEH:4:2);
 END;

BEGIN
  ASSIGN(F,'C:\OCENKI.TXT');
  REWRITE(F);
  VHOD;
  WRITELN(F);
  WRITELN(F);
  SMQTANE;
  CLOSE(F);
END.

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

Функцията ASSIGN, както се досещате създава текстов файл (F) в C:\, в който ще попълваме! REWRITE(F) - Подготвяме файла за запис. WRITELN(F) - Поставяме нов ред в текстовия файл (За въвеждане на текст е недопустима. Трябва да се ползва WRITE(F,'...'); за текст!). CLOSE(F) - затваряме файла и той е готов за четене! При желание може да се добави проверка, дали оценката е от 2 до 6, но аз сметнах, че така е добре. Разбира се, можеш да си добавиш. ;) Въпрос на желание...

Ами това е. Надявам се да съм помогнал!

Поздрави и лек ден!

Много ми помогна. :angry: Страшно много ти благодаря и ти пожелавам всичко най - хубаво. :wors:

Само един въпрос към BoBys.. човека не попита ли дали може да се направи програмата с няколко записа.... а запис не значи ли декларираене на тип Record? В смисъл направил си му го правилно обаче чрез просто записване в текстов файл, което не отговаря конкретно на условието на задачата. Само питам, че ми стана интересно Публикувано изображение

Само един въпрос към BoBys.. човека не попита ли дали може да се направи програмата с няколко записа.... а запис не значи ли декларираене на тип Record? В смисъл направил си му го правилно обаче чрез просто записване в текстов файл, което не отговаря конкретно на условието на задачата. Само питам, че ми стана интересно Публикувано изображение

Привет!

Забележката ти е основателна и я приемам с ентусиазъм! :)

Бях написал в поста си (преди програмата), дали правилно съм разбрал всичко. Авторът на условието не спомена забележки и счетох, че това е необходимата програма. :) Ако има нещо, да пише - с радост ще помогна пак!

Поздрави и пожелания за лек и спокоен ден на всички!

Аз дори не исках да го приемаш като забележка :). Просто ми стана интересно. Все пак добре си му написал на колегата задачката. Дума няма. Лека вечер Публикувано изображение

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

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

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

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

Дарение

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

Бюлетин

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

Профил

Навигация

Търсене

Търсене

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

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