PDA

Դիտել ողջ տարբերակը : Pascal խնդիրներ



Tigana
05.12.2007, 15:49
Ժողովուրդ խնդրում եմ եթե էս խնդրի լուծումը ունեք գրեք էլի:
Տրված է n թիվը ու n տարր պարունակող վեկտոր:Ստանալ նոր վեկտոր,որի տարրերը ստացվում են առաջինի դրական տարրերից,եթե m թիվը պարզ է,հակառակ դեպքում`բացասականներից:
Բայց ամեն դեպքում,եթե պոլիտեխի կուրսայիններ ունեք ասեք էլի:

Script
05.12.2007, 15:53
Ես Պասկալով գրած կուրսաիններ ունեմ, մենակ թե շուտվա բաներ են պիտի ման գամ որ գտնեմ, եթե հետաքրքրեց mail-դ գրի կուղարկեմ:)

_DEATH_
05.12.2007, 16:06
Ժողովուրդ խնդրում եմ եթե էս խնդրի լուծումը ունեք գրեք էլի:
Տրված է n թիվը ու n տարր պարունակող վեկտոր:Ստանալ նոր վեկտոր,որի տարրերը ստացվում են առաջինի դրական տարրերից,եթե m թիվը պարզ է,հակառակ դեպքում`բացասականներից:
Բայց ամեն դեպքում,եթե պոլիտեխի կուրսայիններ ունեք ասեք էլի:

Լուծումը չունեմ, բայց հեսա կլուծեմ ու կգրեմ ստեղ :), շատ պարզ խնդիրա, ով որ գոնե Pascal-ի ճիշտ անունը գիտի կկարանա լուծի :), տրամաբանելու կարիք չկա նույնիսկ, էսի լուրջ կուրսայինա՞՞

Բլոկ սխեման պետքա, թե մենակ պասկալի կոդը??

PoeT
05.12.2007, 18:42
Իմ կուրսայինն էլա սենց մի բան։

Մանոն
06.12.2007, 10:46
Tigana ինձ թվում է հարցի մեջ ոչ թե m թիվը պարզ է, այլ n թիվը: Մի հատ ճշտի դա լա՞վ:

քաղաքացի
06.12.2007, 11:34
Կներեք թեմայից շեղվելու համար, բայց մի հարց ունեմ: Pascal, « c »-ով չի գրվո՞ւմ: :think

Հա, հա… հաստատ « c »-ով ա՝ Blaise Pascal, ֆրանսիացի ա եղել :hands

Tigana
06.12.2007, 12:46
Ես Պասկալով գրած կուրսաիններ ունեմ, մենակ թե շուտվա բաներ են պիտի ման գամ որ գտնեմ, եթե հետաքրքրեց mail-դ գրի կուղարկեմ:)

sweet-rain@bk.ru Script ջան,նախապես շնորհակալ եմ:
իսկ ինչ վերաբերվում ա խնդրին , էդքան էլ հեշտ չի,pascal գիտեմ,պատասխանները չեմ ստանում,էն պարզ թվի պահը չի լինում:
Իսկ Պասկալ լավ գիտեմ:

Ավելացվել է 2 րոպե անց

Tigana ինձ թվում է հարցի մեջ ոչ թե m թիվը պարզ է, այլ n թիվը: Մի հատ ճշտի դա լա՞վ:

Երանի չէր?

_DEATH_
06.12.2007, 16:06
Նախ սխալա ձևակերպված խնդիրը:

Տրված է n թիվը ու n տարր պարունակող վեկտոր:Ստանալ նոր վեկտոր,որի տարրերը ստացվում են առաջինի դրական տարրերից,եթե m թիվը պարզ է,հակառակ դեպքում`բացասականներից:

1)m-ը ովա՞ :think, Տրված է n թիվը, բա m-ը տրված չի՞
2)Օրենքով պետք է շեշտվի թե ինչ տիպի է թիվը, n-ը պարզ է որ ամբողջ, բա m-ը՞՞


Իսկ Պասկալ լավ գիտեմ:

Ես էլ Մեշրոպ Մաստոցի ստեղծած տառերը շատ լավ գիտեմ :D
Pascal լավ իմանալու համար 2 բանա պետք 1)անգլերենի իմացություն Paskal :think
2)գոնեեեե հասարակ մաթեմատիկական խնդիրները լուծել կարողանալ, որոնցից ամենահեշտերից մեկը պարզ թվի ալգորիթմնա:

Պարզ թիվը իմ կարծիքով նենց մի բարդ բան չի, մի անգամից հազար հատ ալգորիթմ մտքովս անցավ: Հեսա մի հատը գրեմ, :) Բայց մի հատ պարզ թվի ճիշտ սահմանումը հիշացրեք էլի, մենակ ամբողջ թվերի վրա էր սահմանվում չէ՞: Ես m-ը որպես real թիվ եմ ընդունել, եթե integer–ա ասա ուրիշ ձև գրեմ:

Եթե թիվը պարզ է, ուրեմն պետքա էս պայմանը տեղի ունենա

if (m=2) or (m=3) or (m=5) or (m=7) or ((m/2<>trunc(m/2)) and (m/3<>trunc(m/3)) and (m/5<>trunc(m/5)) and (m/7<>trunc(m/7) then write('Էս թիվը պարզա'))

Եթե պետքա ասա լրիվ խնդիրը գրեմ :)

_DEATH_
06.12.2007, 16:45
Բայց ոնց որ սխալ եմ գրել, պարզ թիվը մի հատ բացատրեք էլի որնա, պտի մենակ 1-ի ու իրա վրա բաժանվի??, եթե հա սխալ եմ գրել, հեսա կմտածեմ ճիշտը գրեմ

BOBO
06.12.2007, 17:08
Բայց ոնց որ սխալ եմ գրել, պարզ թիվը մի հատ բացատրեք էլի որնա, պտի մենակ 1-ի ու իրա վրա բաժանվի??, եթե հա սխալ եմ գրել, հեսա կմտածեմ ճիշտը գրեմ
Հա: Չեմ ջոկում 1-ին, 2-րդ դասարան չես գնացել?:D
Ընչի քո գրածով 2-ի վրա էլ էր բաժանվում?:))

Արշակ
06.12.2007, 17:08
_DEATH_, պարզ թվի ծրագրի կտորը սխալ ես գրել։ :B
Վերջը ստիպեցիք, որ ջահելությունս հիշեմ էլի։ :)) Հարյուր տարի էր Pascal-ով բան չէի գրել։
Ահա թվի պարզ լինել–չլինելը ստուգող ծրագիր։ Խնդրի մնացած մասերը հավես չարեցի գրեմ։


var
k, m, n: integer;
isPrime:boolean;
begin
write('m=');
read(m);
n := round(sqrt(m));
isPrime := true;
for k:=2 to n do
begin
if(m mod k = 0) then
begin
isPrime := false;
break;
end;
end;
if((n>1) and (isPrime)) then
writeln(m, ' is a prime number.')
else
writeln(m, ' is not a prime number.');
end.

Ավելացվել է 3 րոպե անց

պարզ թիվը մի հատ բացատրեք էլի որնա
Պարզ կոչվում է այն բնական թիվը որը բացի իրենից ու 1–ից ուրիշ թվի վրա չի բաժանվում։
Ոնց–որ թե սենց։:)

_DEATH_
06.12.2007, 17:21
Պարզ կոչվում է այն բնական թիվը որը բացի իրենից ու 1–ից ուրիշ թվի վրա չի բաժանվում։
Ոնց–որ թե սենց։:)

Հա լավ հասկացա :D, մոռացել էի սահմանումը, եթե տենցա ուրեմն իմ ձևով գրել չի լինի, պտի թե չէ ստուգելու համար սաղ պարզ թվերի վրա բաժանվի ու ստուգվի :D

Ավելացվել է 6 րոպե անց

Հա: Չեմ ջոկում 1-ին, 2-րդ դասարան չես գնացել?:D


Գնացել եմ բայց հաստատ տենց բան ինձ չեն սովորացրել, հետո 8-ում օլիմպիադայի վախտ տենց մի հատ խնդիր կար պարզ թվին վերաբերող, չգիտեի որնա :(, հետո մաթեմի դասատուիս հարցրի բացատրեց, բայց մոռացել էի, քանի որ հիշողությունից շատ վատ եմ :B

Սամվել
06.12.2007, 18:05
Պարզ թվերը դրանք այն ամբողջ թվերն են որոնք առանց մնացորդի բաժանվում են միայն իրենց ու 1ի վրա ;)

Պարզ թվի ալգորիթմը շատ յուղա ;)

var
EntParzTiv integer ;
k boolean ;
i integer ;
begin
k = true ;
for i := 2 to ( EntParzTiv div 2 ) do
if ( EntParzTiv mod i) = 0 then k := false ;
if k=true then write (" Պարզա;)" ) else ":mda Պարզ չի"
end.

Կոմպիլացիա չեմ արել կարողա մի 2 հատ հավայի սխալ լինի մեջը բայց ստռուկտուռան ճիշտա ;)

Ավելացվել է 2 րոպե անց
Լա՜վ համոզիք էսա կտեղադրեմ խնդրի լուծումը

Սամվել
06.12.2007, 18:36
program Kursayin ;
uses crt ;
var
k:boolean ;
i,m,n :integer ;
x,y:array[0..50] of integer ;
begin clrscr ;
write ( 'n=' ) ; readln ( n ) ;
write ( 'm=' ) ; readln ( m ) ;
for i:=1 to n do
begin
write ( 'x[',i,']=' ) ;
readln ( x[i] ) ;
end ;
k:=true ;
for i:=2 to m div 2 do
if (m mod i)=0 then k:=false ;
m:=0 ;
if k=true then
begin
for i:=1 to n do if ( x[i]>0 ) then begin m:=m+1; y[m]:=x[i] end ;
if m=0 then writeln ( 'drakan tarr chka' )
end
else
begin
for i:=1 to n do if ( x[i]<0 ) then begin m:=m+1; y[m]:=x[i] end ;
if m=0 then writeln ( 'bacasakan tarr chka' )
end ;
for i:=1 to m-1 do write ( 'y[',i,']=',y[i],' ' ) ;
end.

:B ;)

հեհե անցցած տարի պոլիտեխում մի 20 հատ կիբեռի կուրսային եմ գրել :8

Հ.Գ. Մաղարիչ ունես :lol

Tigana
08.12.2007, 00:06
Բոլորին շնորհակալ եմ:
Սամվել գրածդ ամենահարմարն էր,վերջում m-1 չէ,m:
Մերսի::hands

Սամվել
08.12.2007, 00:41
Բոլորին շնորհակալ եմ:
Սամվել գրածդ ամենահարմարն էր,վերջում m-1 չէ,m:
Մերսի::hands

Հա ճիշտա :oy ընդեղ սկզբում պատահմամբ մը 1ից էի սկսել դրա համար էր տենց ստացվել հետո դզեցի մոռացա էտ ցիկլում էլ դզել ;)

Սամվել
09.12.2007, 13:22
program Kursayin ;
uses crt ;
type vector=array[1..50] of integer ;
var
k:boolean ;
i,m,n :integer ;
x,y:vector ;
procedure output ( m:integer ; y : vector ) ;
var i:integer ;
begin
for i:=1 to m do write ( 'y[',i,']=',y[i],' ' ) ;
end ;
function input ( i:integer ):integer ;
var x:integer ;
begin
write ( 'x[',i,']=' ) ;
readln ( x ) ;
input:=x ;
end ;
begin clrscr ;
write ( 'n=' ) ; readln ( n ) ;
write ( 'm=' ) ; readln ( m ) ;
for i:=1 to n do x[i]:=input(i) ;
k:=true ;
for i:=2 to m div 2 do
if (m mod i)=0 then k:=false ;
m:=0 ;
if k=true then
begin
for i:=1 to n do if ( x[i]>0 ) then begin m:=m+1; y[m]:=x[i] end ;
if m=0 then writeln ( 'drakan tarr chka' )
end
else
begin
for i:=1 to n do if ( x[i]<0 ) then begin m:=m+1; y[m]:=x[i] end ;
if m=0 then writeln ( 'bacasakan tarr chka' )
end ;
output ( m , y ) ;
end.

լավ տեստ չեմ արել, որ սխալներ լինի ասա կդզենք :ok

Guest
20.12.2007, 16:55
1000 դրամով կուրսային եմ գրում:D Ո՞վ ա ցանկանում ասեք:

Շեղվելով թեմայից...
Ժամանակին մտախում էի թե ինչքան փող կարելի ա ստանալ պոլիտեխնիկի ուսանողներից:8 Ահագին զարմանում էի, որ պրիմիտիվ առաջադրանքների համար մարդիկ պատրաստ են բավականին մեծ(պոլիտեխնիկցու համար) գումարներ տալ: Կազմել էի ցանկ ու ուզում էի բիզնեսը սկսեի, բայց մտափոխվեցի… գնացի մորմալ աշխատանքի:)

Ինչ կասեք, ամսկան 2000$-ը քիչ փող ա՞…

Dayana
20.12.2007, 17:09
1000 դրամով կուրսային եմ գրում:D Ո՞վ ա ցանկանում ասեք:

Շեղվելով թեմայից...
Ժամանակին մտախում էի թե ինչքան փող կարելի ա ստանալ պոլիտեխնիկի ուսանողներից:8 Ահագին զարմանում էի, որ պրիմիտիվ առաջադրանքների համար մարդիկ պատրաստ են բավականին մեծ(պոլիտեխնիկցու համար) գումարներ տալ: Կազմել էի ցանկ ու ուզում էի բիզնեսը սկսեի, բայց մտափոխվեցի… գնացի մորմալ աշխատանքի:)

Ինչ կասեք, ամսկան 2000$-ը քիչ փող ա՞…

Գիտես մեր համատեղ խմբում մեկը կար անունը հետո ականջիդ կասեմ :D իրա հեռախոսը մեր ուսանողների հաշվին էր առել :D տենց կուրսաիիներ ու առաջադրանքներ էր արել, նենց որ անհնարին միտք չի :D բայց հանկարծ տենց բան չանես :oy

hush
20.03.2008, 19:50
Բարև ձեզ: Ժողովուրդ, խնդրում եմ օգնեք էլի, եթե ինչ-որ մեկը կարողա էս 2 խնդրի լուծումը գրի: Շատա պետք է :8 նախապես մերսի :oy

1. Ձևավորել f1 և f2 տեքստային ֆայլեր: Ելք տալ այն տարրերը, որոնք ընդհանուր են երկու ֆայլերի համար:

2. Տրված են n բնական թիվը և n3n քառակուսի մատրիցան: Հաշվել մատրիցայի այն էլեմենտների գումարը, որոնք չեն գտնվում գլխավոր և օժանդակ անկյունագծերի վրա և բազմապատիկ են իրենց ինդեքսների գումարին: Ինդեքսների գումարին բազմապատկությունը ձևակերպել որպես մոդուլ ծրագրի առանձին ֆունկցիա:

Սամվել
20.03.2008, 19:51
Բարև ձեզ: Ժողովուրդ, խնդրում եմ օգնեք էլի, եթե ինչ-որ մեկը կարողա էս 2 խնդրի լուծումը գրի: Շատա պետք է :8 նախապես մերսի :oy

1. Ձևավորել f1 և f2 տեքստային ֆայլեր: Ելք տալ այն տարրերը, որոնք ընդհանուր են երկու ֆայլերի համար:

2. Տրված են n բնական թիվը և n3n քառակուսի մատրիցան: Հաշվել մատրիցայի այն էլեմենտների գումարը, որոնք չեն գտնվում գլխավոր և օժանդակ անկյունագծերի վրա և բազմապատիկ են իրենց ինդեքսների գումարին: Ինդեքսների գումարին բազմապատկությունը ձևակերպել որպես մոդուլ ծրագրի առանձին ֆունկցիա:

Ես կարամ բայց հիմա տեղ եմ գնում...մի 2 ժամից հիշացրու անպայման կանեմ :ok

hush
20.03.2008, 19:53
Շատ շնորհակալ կլինեմ :)

hush
21.03.2008, 17:07
Ես կարամ բայց հիմա տեղ եմ գնում...մի 2 ժամից հիշացրու անպայման կանեմ :ok

Հիշեցնում եմ ;)

firewall
22.03.2008, 00:57
Բարև ձեզ: Ժողովուրդ, խնդրում եմ օգնեք էլի, եթե ինչ-որ մեկը կարողա էս 2 խնդրի լուծումը գրի: Շատա պետք է :8 նախապես մերսի :oy

1. Ձևավորել f1 և f2 տեքստային ֆայլեր: Ելք տալ այն տարրերը, որոնք ընդհանուր են երկու ֆայլերի համար:

2. Տրված են n բնական թիվը և n3n քառակուսի մատրիցան: Հաշվել մատրիցայի այն էլեմենտների գումարը, որոնք չեն գտնվում գլխավոր և օժանդակ անկյունագծերի վրա և բազմապատիկ են իրենց ինդեքսների գումարին: Ինդեքսների գումարին բազմապատկությունը ձևակերպել որպես մոդուլ ծրագրի առանձին ֆունկցիա:

1-ը իսկապես շատ հետաքրքիր խնդիր եր, բայց բան չհասկացա… :B

2.


var i,j,n,l,:integer;
a:array[1..10,1..10] of integer;
function bazm(i1,i2,k):bool;
begin
bazm := ( (k mod (i1+i2))=0 );
end;
begin
read(n);
for i:=1 to n do
for j:=1 to n do
read(a[i,j]);
for i:=1 to n do
for j:=1 to n do
if (i<>j) and (i<>n-j+1) and bazm(i,j,a[i,j]) then l := l + a[i,j];
writeln('Պատ: ', l);
end.

բայց հիմա ժամանակ չկա տեստավորելու…

hush
22.03.2008, 17:47
1-ը իսկապես շատ հետաքրքիր խնդիր եր, բայց բան չհասկացա… :B

2.


var i,j,n,l,:integer;
a:array[1..10,1..10] of integer;
function bazm(i1,i2,k):bool;
begin
bazm := ( (k mod (i1+i2))=0 );
end;
begin
read(n);
for i:=1 to n do
for j:=1 to n do
read(a[i,j]);
for i:=1 to n do
for j:=1 to n do
if (i<>j) and (i<>n-j+1) and bazm(i,j,a[i,j]) then l := l + a[i,j];
writeln('Պատ: ', l);
end.

բայց հիմա ժամանակ չկա տեստավորելու…

շատ շնորհակալ եմ, որ ժամանակ ես տրամադրել ու արել էսքանը, բայց չաշխատեց :(

Սամվել
22.03.2008, 18:57
2. Տրված են n բնական թիվը և n3n քառակուսի մատրիցան: Հաշվել մատրիցայի այն էլեմենտների գումարը, որոնք չեն գտնվում գլխավոր և օժանդակ անկյունագծերի վրա և բազմապատիկ են իրենց ինդեքսների գումարին: Ինդեքսների գումարին բազմապատկությունը ձևակերպել որպես մոդուլ ծրագրի առանձին ֆունկցիա:


var i,j,n,s:integer;
x:array[1..50,1..50] of integer ;
y:array[1..50] of integer ;
{**** Function *******}
function func ( member:integer ; row:integer; col:integer ):integer;
begin
if ( (member mod (row+col)) = 0 ) then func:=member
else func:=0 ;
end;
{**** main program ******}
begin
write ('n='); readln (n);
for i:=1 to n do for j:=1 to n do
begin write ('x[', i,',',j,']=');readln(x[i,j]); end ;
s:=0 ;
for i:=1 to n do for j:=1 to n do
if ((i<>j) or ((i+j)<>(n+1))) then s:=s+func(x[i,j],i,j) ;

writeln ('s=',s);
end.

Կներեք ուշացման համար...
Հ.Գ. 1ին խնդիրը կանեմ կամ այսօր կամ վաղը առավոտյան...մենակ մի հատ էլի հիշեցրեք էլի :oy

hush
22.03.2008, 19:39
var i,j,n,s:integer;
x:array[1..50,1..50] of integer ;
y:array[1..50] of integer ;
{**** Function *******}
function func ( member:integer ; row:integer; col:integer ):integer;
begin
if ( (member mod (row+col)) = 0 ) then func:=member
else func:=0 ;
end;
{**** main program ******}
begin
write ('n='); readln (n);
for i:=1 to n do for j:=1 to n do
begin write ('x[', i,',',j,']=');readln(x[i,j]); end ;
s:=0 ;
for i:=1 to n do for j:=1 to n do
if ((i<>j) or ((i+j)<>(n+1))) then s:=s+func(x[i,j],i,j) ;

writeln ('s=',s);
end.

Կներեք ուշացման համար...
Հ.Գ. 1ին խնդիրը կանեմ կամ այսօր կամ վաղը առավոտյան...մենակ մի հատ էլի հիշեցրեք էլի :oy

Շաաատ շնորհակալ եմ :)

firewall
23.03.2008, 02:48
շատ շնորհակալ եմ, որ ժամանակ ես տրամադրել ու արել էսքանը, բայց չաշխատեց :(

ամենացածր մակարդակի պասկալ իմացողը կուղեր այդ սխալները…

hush
23.03.2008, 11:21
ամենացածր մակարդակի պասկալ իմացողը կուղեր այդ սխալները…

եթե pascal իմանայի չէի դիմի ձեր օգնությանը… :angry


Հ.Գ. 1ին խնդիրը կանեմ կամ այսօր կամ վաղը առավոտյան...մենակ մի հատ էլի հիշեցրեք էլի

էլի հիշեցում :P :oy

hush
26.03.2008, 19:06
1ին խնդիրը կանեմ կամ այսօր կամ վաղը առավոտյան...մենակ մի հատ էլի հիշեցրեք էլի :oy[/QUOTE]


:( :oy

XeS
27.03.2008, 11:45
Ժողովուրդ խնդրում եմ եթե էս խնդրի լուծումը ունեք գրեք էլի:
Տրված է n թիվը ու n տարր պարունակող վեկտոր:Ստանալ նոր վեկտոր,որի տարրերը ստացվում են առաջինի դրական տարրերից,եթե m թիվը պարզ է,հակառակ դեպքում`բացասականներից:
Բայց ամեն դեպքում,եթե պոլիտեխի կուրսայիններ ունեք ասեք էլի:
հնն բան չհասկացա քօ պահանջներից, եթե մանրամասն գրես կոգնեմ, ավելի շուտ կասեմ ալգորիթմն դու ինքտ կգրես ես վերջի անգամ Pascal տեսել եմ մի տարի աոաջ բան չեմ հիում ետ լեզվից

Հրատացի
17.11.2008, 16:39
Կուրսային հանձնելու ժամանակն ա իսկ ես Պասկալից տեղյակ չեմ:Խնդում եմ օգնեք:

Տրված է n բնական թիվը և n տարր պարունակող x վեկտորը:Կազմել այնպիսի նոր y վեկտորի ստացման և տպման բլոկ-սխեման ու ծրագիրը,որի տարրերը ստացվում են վեկտորի ամեն 3-ի աստիճան հանդիսացող տարրից հետո ավելացնելով մեկ հատ 2 արժեք ունեցող տարր:

Ռեդ
17.11.2008, 17:23
Կուրսային հանձնելու ժամանակն ա իսկ ես Պասկալից տեղյակ չեմ:Խնդում եմ օգնեք:

Տրված է n բնական թիվը և n տարր պարունակող x վեկտորը:Կազմել այնպիսի նոր y վեկտորի ստացման և տպման բլոկ-սխեման ու ծրագիրը,որի տարրերը ստացվում են վեկտորի ամեն 3-ի աստիճան հանդիսացող տարրից հետո ավելացնելով մեկ հատ 2 արժեք ունեցող տարր:
Պասկալ հլա որ չեմ մոռացել :)
Անհասկանալի բան լինի ասա բացատրեմ :) ;)

Program REn005;
const n=20;
var i,y_size,j,cur:integer;
x:array[1..n] of integer;
y:array[1..2*n] of integer;

function baj(m:integer; p:integer):boolean;
{stugum e ardyoq m tiv@ bajanvum e p tvi vra aranc mnacordi}
begin
if m=p*trunc(m/p) then baj:=true else baj:=false;
end;

function ast(m:integer; p:integer):boolean;
{stugum e ardyoq m tiv@ p tvi astichan e te voch ev veradarznum}
begin
if m=1 then
ast:=true
else
if not baj(m,p) then
ast:=false
else
ast:=ast(trunc(m/p),p);
end;

begin
y_size:=0;
for i:=1 to n do
begin
readln(x[i]);
inc(y_size);
y[y_size]:=x[i];
if ast(x[i],3) then
begin
inc(y_size);
y[y_size]:=2;
end;
end;
writeln;
for i:=1 to y_size do writeln(y[i]);
readln;
end.

Հրատացի
17.11.2008, 17:38
Որ մի երկու խոսկով բացատրես շատ գոհ կլինեմ

Ռեդ
17.11.2008, 19:09
Որ մի երկու խոսկով բացատրես շատ գոհ կլինեմ
օու քեյ ;)
Նախ հայտարարման մասին

y:array[1..2*n]վերցրել եմ 2*n չափի վեկտոր, որովհետև մաքսիմալ դեպքում /այսինքն երբ x-ի ամեն մի տարր 3-ի աստիճան է/ y-ի երկարությունը 2*n կլինի ;)
baj ֆունկցիայի իրականացումը
Ֆունկցիան պետք է պարզի, թե արդյոք m թիվն առանց մնացորդի բաժանվում է p-ի վրա:

m=p*trunc(m/p)
սրանով մենք ստուգում ենք պահանջվող պայմանը: trunc-ը, գիտես, ամբողջ մաս վերցնելու ֆունկցիան ա: Որ մի քանի անգամ ստուգես, կտեսնես, որ ճիշտ է :)
ast ֆունկցիայի իրականացումը
Ֆունկցիան պետք է պարզի՝ արդյո՞ք m թիվը p թվի աստիճան է /տվյալ խնդրի համար p=3/
Իրականացումը կատարվում է ռեկուրսիայի եղանակով: Եթե ծրագրավորում չգիտես ընդհանրապես, ռեկուրսիան կարող է դժվար թվալ: Բայց որ մի քանի անգամ ուշադիր կարդաս ֆունկցիան, կհասկանաս:
Հիմնական ծրագիրը
Դե էս մեկը ծրագրի թերևս ամենահեշտ մասն է
Նախօրոք պահում ենք y_size=0 արժեքով փոփոխական, որը ցույց է տալիս y-ի տվյալ դիրքաթիվը /այսինքն վերջին լրացված դիրքը/ :
Այնուհետև կատարում ենք n հատ թվերի մուտքագրում: Յուրաքանչյուր մուտք արված թիվ "գցում ենք" y-ի մեջ inc(y_size); y[y_size]:=x[i]; տողերի օգնությամբ

if ast(x[i],3) then
begin
inc(y_size);
y[y_size]:=2;
end;

Այս մասը ստուգում է եթե թիվը 3-ի աստիճան է ապա y-ում ավելացնում ենք 2 վերջին լրացված դիրքին հաջորդող /առաջին չլրացված/ դիրքում:
Դրան հաջորդող տողերը կատարում են y վեկտորի արտածում :)
Վերջ, մի քիչ երկար ստացվեց, բայց դե, :oy
Դե հիմա ինձ ասա
1. քո մոտ աշխատե՞ց
2. հասկացա՞ր լրիվ ասածս :);)

BOBO
29.11.2008, 17:21
Տրված ե n բնական թիվ և n տարր պարունակող միաչափ զանգված: Զագգվածից հեռացնել այն տարրերը որոնք երկուսից ավել անգամ են կրկնվում:
Ով կլուծի?:oy

Ռեդ
30.11.2008, 00:26
Տրված ե n բնական թիվ և n տարր պարունակող միաչափ զանգված: Զագգվածից հեռացնել այն տարրերը որոնք երկուսից ավել անգամ են կրկնվում:
Ով կլուծի?:oy
Մոտս պասկալ չկա որ աշխատեցնեմ
Փորձի ;)

program BOBO;
const n=20;
var a,b:array[1..n] of real; i,ind:integer;
function krkn(k:integer):integer;
var p,j:integer;
begin
p:=0;
for j:=1 to k - 1 do if(a[j]=a[k]) then inc(p);
for j:=k+1 to n do if(a[j]=a[k]) then inc(p);
krkn:=p;
end;
begin
ind:=0;
for i:=1 to n do readln(a[i]);
for i:=1 to n do
if(krkn(i)<=2) then begin
inc(ind);
b[ind]:=a[i];
end;
for i:=1 to ind do writeln('b[ ',i,' ] = ', b[i]);
readln;
end

BOBO
30.11.2008, 14:25
Մերսի, աշխատում ա::) Բայց էս inc-ը ինչ ա? Առանց դրա չի ըլնում?
Մեկել առանց ենթածրագրերի, եթե դժվար չի դրանցից տենց էլ բան չհասկացա:(

Ռեդ
30.11.2008, 15:21
Մերսի, աշխատում ա::) Բայց էս inc-ը ինչ ա? Առանց դրա չի ըլնում?
Մեկել առանց ենթածրագրերի, եթե դժվար չի դրանցից տենց էլ բան չհասկացա:(
inc(p)-ն փոխարինել եմ p:=p+1-ով, նույն բանն ա :);)
Առանց ենթածրագրի խնդրի կոդը կունենա հետևյալ տեսքը՝

program BOBO;
const n=20;
var a,b:array[1..n] of real; i,ind,p,j:integer;
begin
ind:=0;
for i:=1 to n do readln(a[i]);
for i:=1 to n do begin
p:=0;
for j:=1 to i - 1 do if(a[j]=a[i]) then p:=p+1;
for j:=i+1 to n do if(a[j]=a[i]) then p:=p+1;
if p<=2 then begin
inc(ind);
b[ind]:=a[i];
end;
end;
for i:=1 to ind do writeln('b[ ',i,' ] = ', b[i]);
readln;
end
Կրկնում եմ, մոտս պասկալ չկա, աշխատեցրու ;)

Levon221
23.12.2008, 11:07
Տրված է n բնական տիվը և n տարրեր պարունակող x վեկտորը : Կազմել այնպիսի
նոր y վեկտօրի ստացման և տպման բլոկ սխեման ու ծրագիրը, որի տարրերը
ստացվում են վեկտորից, նրա մեջ փոքրագույն տարրի արժեքը ավելացնելով
վեկտորի միակ բաղադրիալ տվի արժեքի չափով:

Ծրագրում փոգրագույնի արժեքը որոշել Ֆունկցիայում,
Նոր զանգվածի ստացւմը կազմակերպել Պրոցեդուրայում:

Նախապես Անչափ Շնորհակալուտյուն...

Ռեդ
23.12.2008, 15:59
նրա մեջ փոքրագույն տարրի արժեքը ավելացնելով
վեկտորի միակ բաղադրիալ տվի արժեքի չափով:
Էս պահը չհասկացա: Վեկտորում մի հա՞տ ա բաղադրյալ թիվ

Levon221
23.12.2008, 17:06
Էս պահը չհասկացա: Վեկտորում մի հա՞տ ա բաղադրյալ թիվ

Ահա պահանջում տենց է գրված... Եթե բաղադրյալի դզեվնել չգիտես հոգ ցհի մնացածը
գրի այդտեղը բաց թող... Վաղը պետքա գնամ հանձնելու դեռ բան չեմ կառացել անեմ...

Ռեդ
23.12.2008, 23:15
Ահա պահանջում տենց է գրված... Եթե բաղադրյալի դզեվնել չգիտես հոգ ցհի մնացածը
գրի այդտեղը բաց թող... Վաղը պետքա գնամ հանձնելու դեռ բան չեմ կառացել անեմ...
Տենանք ոնցա ստացվում ;)
Մի նրբություն եթե մինիմում տարրերը մի քանիսն են, ապա բոլորին վերագրել եմ միակ բաղադրյալ թվի արժեքը

program Cragir;
const maxsize=10;
var x,y:array[1..maxsize] of integer; n,i,t,bax,m:integer; brk:boolean;
function poqraguyn:integer;
var min:integer;
begin
min:=x[1];
for i:=2 to n do if x[i]<min then min:=x[i];
poqraguyn:=min;
end;
procedure stacum;
begin
brk:=false;
for i:=1 to n do begin
for t:=2 to trunc(sqrt(x[i]))+1 do begin
if x[i] mod t=0 then
begin
bax:=i;
brk:=true;
break;
end;
end;
if brk then break;
end;
m:=poqraguyn;
for i:=1 to n do begin
if x[i]=m then y[i]:=x[bax]+x[i] else y[i]:=x[i];
end;
end;
begin
write('Mutqagreq n - ');
readln(n);
for i:=1 to n do begin
write('Mutqagreq x[',i,'] - ');
readln(x[i]);
end;
stacum;
for i:=1 to n do writeln('y[',i,'] = ',y[i]);
end.

Կաթիլ
16.04.2009, 20:12
Ժողովու՜րդ, եթե հնարավոր է ծրագիրը գրեք էլի՜ :oy
Տրված է A=[aij]nn մատրիցան, հաշվել A մատրիցի որոշիչը (դետերմինանտը) Գաուսի մեթոդով:

freethinker
19.04.2009, 13:43
Կաթիլ, եթե ասես Գաուսի մեթոդը որնա կարողա օգնենք :)

Կաթիլ
19.04.2009, 15:49
Կաթիլ, եթե ասես Գաուսի մեթոդը որնա կարողա օգնենք :)

Քանի որ չստացվեց հավաքել տեքստը, տեղադրում եմ նկարի ձևով :oy
Նախապես շնորհակալություն :oy

freethinker
19.04.2009, 18:19
Կաթիլ , ցավոք, Pascal-ի իմ ունեցած գիտելիքները բավարար չեն լուծելու համար (8 տարում համարյա ամեն ինչ մոռացել եմ) :(

Կաթիլ
20.04.2009, 15:02
Կաթիլ , ցավոք, Pascal-ի իմ ունեցած գիտելիքները բավարար չեն լուծելու համար (8 տարում համարյա ամեն ինչ մոռացել եմ) :(

Ամեն դեպքում շնորհակալ եմ :)

Արտիստ
26.04.2009, 22:01
Ժող պասկալում ոնց էին CRT ռեժիմում սովորական տեքստը մեր ուզած տեղում տպում?
ինչ որ outputtextxy էր ինչ էր?:think

Վայ մամա ջան հեսա կքցվեմ:Դ

Cyborg
10.06.2009, 10:13
Այսոր սկսեցի pascal սովորել ու գրեցի մի հատ ծրագիր
Program Anunt_Incha;
const
anungreq='Anunt incha?';
Barev='Barev ';
var A:string;
begin
WriteLn(Anungreq);
read (A);
WriteLn(Barev+A);
end.
կոմպիլացիաից հետո հարձը տալիսա:
Anunt incha?
Tiko
Ու ստեղ ծրագիրը պագվումա առանց բարեվելու:

Ներսես_AM
10.06.2009, 12:01
Այսոր սկսեցի pascal սովորել ու գրեցի մի հատ ծրագիր
Program Anunt_Incha;
const
anungreq='Anunt incha?';
Barev='Barev ';
var A:string;
begin
WriteLn(Anungreq);
read (A);
WriteLn(Barev+A);
end.
կոմպիլացիաից հետո հարձը տալիսա:
Anunt incha?
Tiko
Ու ստեղ ծրագիրը պագվումա առանց բարեվելու:
end. առաջ մի հատ readln(); դիր որ ծրագիրդ կանգնի

Աշխեն
10.06.2009, 12:04
Այսոր սկսեցի pascal սովորել ու գրեցի մի հատ ծրագիր
Program Anunt_Incha;
const
anungreq='Anunt incha?';
Barev='Barev ';
var A:string;
begin
WriteLn(Anungreq);
read (A);
WriteLn(Barev+A);
end.
կոմպիլացիաից հետո հարձը տալիսա:
Anunt incha?
Tiko
Ու ստեղ ծրագիրը պագվումա առանց բարեվելու:

ծրագիրը փակվումա, որովհետև էլ կարդալու բան չունի, բայց եթե մի անգամ էլ աշխատացնես, կամ սեղմես alt+f5 կտեսնես որ գրելա բարևը:
Եթե ցանկանում ես միանգամից տեսնել բարևը, նոր փակվի, առաջարկում եմ սկզբից ավելացնես uses crt; ամենավերջում էլ գրես readkey;
Այդ դեպքում ծրագիրը կսպասի, որ ստեղն սեղմես նոր կփակվի:;)

Cyborg
10.06.2009, 17:22
Մերսի

Nnn
05.07.2010, 22:15
Ես սկսնակ եմ և ինձ խորհուրդ են տվել սկսել այս լեզվից…
Ես կարդացել ու կարդում եմ տարբեր գրքեր այս լեզվի մասին...բայց չեմ կարողանում ստեղծած ֆայլի պարունակությունը տպիչով տպել...
Օգնեք խնդրում եմ
:(

A.r.p.i.
06.07.2010, 11:01
Ես սկսնակ եմ և ինձ խորհուրդ են տվել սկսել այս լեզվից…
Ես կարդացել ու կարդում եմ տարբեր գրքեր այս լեզվի մասին...բայց չեմ կարողանում ստեղծած ֆայլի պարունակությունը տպիչով տպել...
Օգնեք խնդրում եմ
:(
Ֆայլի պարունակությունը տեղափոխի Word--ի էջ, նոր տպի, իսկ դրա համար կատարիր հետևյալ քայլերը.
1.տես նկար
http://i027.radikal.ru/1007/c0/797c5fb54dd6.jpg (http://www.radikal.ru)
2.ապա մկնիկի նշիչով նշիր ծրագիրդ ու սեղմիր Enter կոճակը
3.տեղադրիր Word-ում:
միայն թե մի բան հաշվի առ , Paskal-ում ծրագիրն ամբողջությամբ նշել հնարավոր չի, ինչքան որ ցույցա տրվում էջի վրա , այնքան էլ նշի, ամբողջ ծրագիրը էջ առ էջ նշիր ու տեղափոխիր Word ու տպի::)

Nnn
06.07.2010, 16:22
Շատ շնորհակալություն արձագանքելու համար, բայց ես ի նկատի ունեի որ ծրագիր եմ գրել, որը պետք է տպիչին հղում կատարի և ինչ-որ բան տպի նրանով, բայց ցավոք ընդհամենը ծրագիրն է կախում… Ահա այդ ծրագիրը՝

program nnn;
uses crt;
var out_file:text;
Begin
assign(out_file, 'prn');
rewrite(out_file);
writeln(out_file,'aaa');
close(out_file);
End.

JoKer777
11.09.2010, 19:53
Շատ շնորհակալություն արձագանքելու համար, բայց ես ի նկատի ունեի որ ծրագիր եմ գրել, որը պետք է տպիչին հղում կատարի և ինչ-որ բան տպի նրանով, բայց ցավոք ընդհամենը ծրագիրն է կախում… Ահա այդ ծրագիրը՝

program nnn;
uses crt;
var out_file:text;
Begin
assign(out_file, 'prn');
rewrite(out_file);
writeln(out_file,'aaa');
close(out_file);
End.
Պասկալից գիտելիքներս հերիքումա որ ասեմ «իհարկե ծրագիրը չպիտի աշխատի»... բայց կներեք, ենքան էլ գիտելիք չունեմ որ ծրագիրը գրեմ...

Աթեիստ
11.09.2010, 21:01
Պասկալից գիտելիքներս հերիքումա որ ասեմ «իհարկե ծրագիրը չպիտի աշխատի»... բայց կներեք, ենքան էլ գիտելիք չունեմ որ ծրագիրը գրեմ...

Իսկ եթե գիտելիքները այդքան բանը պնդելուն հերիքում է, մի գուցե հարց տվողին նաև հուշեք, թե ի՞նչու սպիտի աշխատի:
Թեև հաշվի առնելով թե երբ է տրվել հարցը, կարծում եմ հարց տվողին արդե ոչ Ձեր նախորդ գրառումն է պետք, ոչ էլ բացատրությունը:

Simonyan
17.09.2010, 14:38
Խնդրում եմ ոգնեք լուծել հետևյալ խնդիրը`
տրված է n բնական թիվը և n տարր պարունակող x վեկտոր: կազմել այնպիսի y վեկտորի ստացման և
տպման բլոկսխեմա ու ծրագիր, որի տարերը ստացվում են վեկտորի ամեն մի եռյակից,
սկսած առաջին տարից, վերցնելով մոդուլով մեծ արժեք ունեցող տարրը: ստացված վեկտորի
յուրաքանչյուր դրական տարերը մեծացնել իր փոքրագույն տարի արժեքոի չափով:

Nnn
29.09.2010, 17:12
Իսկ եթե գիտելիքները այդքան բանը պնդելուն հերիքում է, մի գուցե հարց տվողին նաև հուշեք, թե ի՞նչու սպիտի աշխատի:
Թեև հաշվի առնելով թե երբ է տրվել հարցը, կարծում եմ հարց տվողին արդե ոչ Ձեր նախորդ գրառումն է պետք, ոչ էլ բացատրությունը:

Ցավոք սրտի սխալվում եք: Դեռ չեմ գտել սխալս:(

---------- Ավելացվել է՝ 18:12 ---------- Սկզբնական գրառումը՝ 18:10 ----------


Պասկալից գիտելիքներս հերիքումա որ ասեմ «իհարկե ծրագիրը չպիտի աշխատի»... բայց կներեք, ենքան էլ գիտելիք չունեմ որ ծրագիրը գրեմ...
Իսկ կարող եք ասել թե ինչու չի աշխատում:(

Ներսես_AM
29.09.2010, 18:37
հարյուր տարի առաջ եմ պասկալով գրել, սենց բան գտա
http://books.google.com/books?id=XFaB8rDpUjYC&pg=PA140&lpg=PA140&dq=pascal+write+to+printer&source=bl&ots=rMtbH7U171&sig=PPUlW7JouOcpWsY4HURRkWYg1T4&hl=en&ei=vk2jTMH6JMrCswawtvCKBQ&sa=X&oi=book_result&ct=result&resnum=4&ved=0CCEQ6AEwAw#v=onepage&q=pascal%20write%20to%20printer&f=false

պետք է անես մոտավոր սենց բան:


USES printer;

.....
Writeln(Lst, 'text printer tpi');
.....


Բայց համոզված չեմ որ կաշխատի: Ինչքան հիշում եմ սա աշխատում էի միայն հին տպիչների հետ որոնք միացվում էին LPT պորտի միջոցով, ու plug & play չէին: Առավել ևս հիմիկվա USB-ով տպիչները:

JoKer777
29.09.2010, 19:20
Ցավոք սրտի սխալվում եք: Դեռ չեմ գտել սխալս:(

Իսկ կարող եք ասել թե ինչու չի աշխատում:(
Nnn ջան, հիմա անցնում ենք պասկալ, բայց դեռ տպիչններին չենք հասել.... երբ իմացա անպայման կգրեմ

Nnn
30.09.2010, 21:34
հարյուր տարի առաջ եմ պասկալով գրել, սենց բան գտա
http://books.google.com/books?id=XFaB8rDpUjYC&pg=PA140&lpg=PA140&dq=pascal+write+to+printer&source=bl&ots=rMtbH7U171&sig=PPUlW7JouOcpWsY4HURRkWYg1T4&hl=en&ei=vk2jTMH6JMrCswawtvCKBQ&sa=X&oi=book_result&ct=result&resnum=4&ved=0CCEQ6AEwAw#v=onepage&q=pascal%20write%20to%20printer&f=false

պետք է անես մոտավոր սենց բան:


USES printer;

.....
Writeln(Lst, 'text printer tpi');
.....


Բայց համոզված չեմ որ կաշխատի: Ինչքան հիշում եմ սա աշխատում էի միայն հին տպիչների հետ որոնք միացվում էին LPT պորտի միջոցով, ու plug & play չէին: Առավել ևս հիմիկվա USB-ով տպիչները:

հա ճիշտ ես, բայց հին տպիչ էլ ունեմ, ուղղակի համապատասխան շինա չունեմ:)

n1djhayko
02.10.2010, 14:16
Ժող ջան կխնդրեի կաազմել այս(տրված է a,b,c թվերը ասումա>եթե այդպիսի երկարություն ունեցող հատվածներով հնարավոր է կառուցել եռանկյունի ,ապա կարտածեն 'y=1',հակառակ դեպքում 'y=2' արտահայտությունը) խնդրի բլոկ սխեման և ծրագիրը

BOBO
02.10.2010, 14:40
var a,b,c:real;
begin
read(a,b,c);
if (a+b>c) and (a+c>b) and (b+c>a) then
write("y=1") else write("y=2");
end.

BOBO
02.10.2010, 16:46
ավելի ճիշտ սենց

var a,b,c,y:real;
begin
read(a,b,c);
if (a+b>c) and (a+c>b) and (b+c>a) then y:=1 else y:=2;
write("y=",y)
end.

Melin
03.10.2010, 12:38
ժող. կարող եք մենյուի ծրագիր գրել:(?

n1djhayko
07.10.2010, 19:40
Կխնդրեի կազմել (տրված է a,b,c,d թվերը ,դասավորել աճման կարգով) բլոկ սխեման և ծրագիրը,,,նախապես շնորհակալ եմ

Nnn
08.10.2010, 22:11
Կխնդրեի կազմել (տրված է a,b,c,d թվերը ,դասավորել աճման կարգով) բլոկ սխեման և ծրագիրը,,,նախապես շնորհակալ եմ

program NMN;
uses crt;
var
i,j:integer;
m:array[1..100] of integer; {cankutyan depqum real}
z:integer; {kaxvat verevinic}
begin
writeln('Give me please the number for zangvat and the zangvat : ');
readln(n);
for i:=1 to n do read(m[i]);

for j:= 1 to n do
for i:=1 to n-1 do
if m[i]> m[i+1] then begin
z:=m[i];
m[i]:=m[i+1];
m[i+1]:=z;
end;

for i:=1 to n do write(m[i],' ');

readln(j);
end.

ծրագրի արտաքին տեսքի սիրունությունը քեզ եմ թողնում/:)բլոկ-սխեման էլ/
քո խնդրի համար n=4

n1djhayko
08.10.2010, 23:51
program NMN;
uses crt;
var
i,j:integer;
m:array[1..100] of integer; {cankutyan depqum real}
z:integer; {kaxvat verevinic}
begin
writeln('Give me please the number for zangvat and the zangvat : ');
readln(n);
for i:=1 to n do read(m[i]);

for j:= 1 to n do
for i:=1 to n-1 do
if m[i]> m[i+1] then begin
z:=m[i];
m[i]:=m[i+1];
m[i+1]:=z;
end;

for i:=1 to n do write(m[i],' ');

readln(j);
end.

ծրագրի արտաքին տեսքի սիրունությունը քեզ եմ թողնում/:)բլոկ-սխեման էլ/
քո խնդրի համար n=4
Շնորհակալ եմ շատ,բայց մենք հլը բաներ կա քո գրածից որ հլը չենք անցել...

Dayana
09.10.2010, 18:27
Ժող, դադարեք ուրիշի փոխարեն խնդիր լուծել, դրանով դուք էդ մարդուն վատություն եք անում: Խնդրի մասին հարցեր տվողներ, դադարեք ուրիշի խելքով խնդիրներ լուծել, դրանով դուք դեգրադացիայի եք ենթարկում ինքներդ ձեզ: Ավելի լավ է ձեր խելքով 40 ստանաք, քան ուրշի խելքով՝ 100: :aha

n1djhayko
11.10.2010, 17:14
Շնորհակալ եմ DAYANA ջան խորհուրդի համար ,ուղղակի արդեն 2 ամիսա դասախոսը տվելա լուծենք ու ոչմեկի մոտ չի ստացվում ,2 շաբաթից էլ միջանկյալնա չգիտեմ ինչ եմ անելու...

Dayana
11.10.2010, 17:31
Շնորհակալ եմ DAYANA ջան խորհուրդի համար ,ուղղակի արդեն 2 ամիսա դասախոսը տվելա լուծենք ու ոչմեկի մոտ չի ստացվում ,2 շաբաթից էլ միջանկյալնա չգիտեմ ինչ եմ անելու...

Շատ ներողություն, բայց էդ ո՞ր ֆակուլտետում եք ու որ ինսիտուտում, որովհետև կներես, բայց էստեղ խնդիր չկա, որ ամբողջ կուրսն էլ չկարողանա լուծել: Եթե ձեզ ընդհանրապես ոչինչ չեն բացատրել, դա ուրիշ խնդիր է պիտի դասախոսի աչքերը հանեք հարցեր տալով, ուրիշ տարբերակ չկա: Ինձ ու ցանկացած մեկի համար դժվար չի էս տեսակ խնդիրը լուծել, բայց դրանից ոչ ես եմ օգտվում , ոչ դու: Անիմաստ ժամանակի վատնում ա: Նեղանալ չկա: :)

VisTolog
11.10.2010, 17:32
Շնորհակալ եմ DAYANA ջան խորհուրդի համար ,ուղղակի արդեն 2 ամիսա դասախոսը տվելա լուծենք ու ոչմեկի մոտ չի ստացվում ,2 շաբաթից էլ միջանկյալնա չգիտեմ ինչ եմ անելու...

2 ամսում հնարավոր չէ՞ր դասախոսից հարցնել::think

n1djhayko
11.10.2010, 18:45
Հարցնում ենք ասումա չարչարվեք,ես էլ չարչարվում եմ բայց միշտ կիսատ պռատա լինում..

Dayana
11.10.2010, 21:36
Հարցնում ենք ասումա չարչարվեք,ես էլ չարչարվում եմ բայց միշտ կիսատ պռատա լինում..

Դե արի սենց պայմանավորվենք, դու գծում ես բլոկ սխեման կամ ծրագրի հատված ես գրում, տեղադրում ես էստեղ, մենք էլ քեզ ճիշտ ուղու վրա են դնում: Համ օգնում ենք, համ ինքնուրույն ես անում, համ էլ վաղը-մյուս օրը դու կսկսես ուրիշներին օգնել: :)

n1djhayko
13.10.2010, 18:07
Dayana ջան անչափ շնորհակալ եմ ,ու անպայաման կհետևեմ խորհուրդիտ...

n1djhayko
13.10.2010, 19:16
Dayana եթե հնարավորա ստուգի խղնդրեմ ,ճիշտ եմ կազմել բլոկը,թե չէ....
Խնդիրը հետևյալն է - կազմել բլոկ սխեմա ,որոնք տրված n բնական թվի համար կհաշվեն ու կտպեն տրված արտահայտության արժեքը.
http://djhaykobreaq.ucoz.ru/havai/asd.png

ԲԼՈԿԸ

http://djhaykobreaq.ucoz.ru/havai/.jpg

Dayana
13.10.2010, 22:00
Ճիշտ ա :)

JoKer777
01.11.2010, 11:59
Ժող ջան օգնեք խնդիրս վերջացնեմ էլի... տրված է բառը, կամ նախասությունը,ծրագիրը պետքե ջնջի բոլոր բացատանիշները, ու ծրագիրը պետքե բաժանենք ենթածրագրերի... առաջին ենթածրագիրը պետքե ջնջի սկզբի բացատանիշները.

program orinak8;
uses crt;
var x,z,k,l:string;
i:integer;
begin
clrscr;
z:=' ';
readln (x);
for i:=1 to 20 do
begin
k:=copy(x,1,1);
if k=z then
delete (x,1,1);
end;
writeln (x);
readkey;
end.

երկրորդ մասը ջնջում է նախադասության մեջ բացատանիշերը

uses crt;
var x,z,j,l,k:string;
i,d:integer;
begin
clrscr;
z:=' ';
readln (x);
d:=length(x);
for i:=1 to d do
begin
k:=copy(x,i,1);
if k=z then
delete (x,i,1);
end;
writeln (x);
readkey;
end.

հիմա օգնեք վերջի բացատանիշերը ջնջեմ, ու այս ամենը կապեմ որ մի ծրագրով աշխատի իսկ երեք մասերը պրոցեդուրանել լինեն.... նախապես շնորհակալություն...

JoKer777
02.11.2010, 14:07
Ժող ջան օգնեք խնդիրս վերջացնեմ էլի... տրված է բառը, կամ նախասությունը,ծրագիրը պետքե ջնջի բոլոր բացատանիշները, ու ծրագիրը պետքե բաժանենք ենթածրագրերի... առաջին ենթածրագիրը պետքե ջնջի սկզբի բացատանիշները.

երկրորդ մասը ջնջում է նախադասության մեջ բացատանիշերը

հիմա օգնեք վերջի բացատանիշերը ջնջեմ, ու այս ամենը կապեմ որ մի ծրագրով աշխատի իսկ երեք մասերը պրոցեդուրանել լինեն.... նախապես շնորհակալություն...
Չեք կարող օգնել՞

JoKer777
02.11.2010, 21:19
Չեք կարող օգնել՞

Pascali զեմլյակներ չգիտեք՞՞՞

armen9494
27.11.2010, 22:14
Մոտս պասկալ չկա որ աշխատեցնեմ
Փորձի ;)

program BOBO;
const n=20;
var a,b:array[1..n] of real; i,ind:integer;
function krkn(k:integer):integer;
var p,j:integer;
begin
p:=0;
for j:=1 to k - 1 do if(a[j]=a[k]) then inc(p);
for j:=k+1 to n do if(a[j]=a[k]) then inc(p);
krkn:=p;
end;
begin
ind:=0;
for i:=1 to n do readln(a[i]);
for i:=1 to n do
if(krkn(i)<=2) then begin
inc(ind);
b[ind]:=a[i];
end;
for i:=1 to ind do writeln('b[ ',i,' ] = ', b[i]);
readln;
end

Ռեդ ջան քո գրած խնդիրը սխալ է: Ճիշտա, էտ մանրուք ա, բայց դրա պատճառով կարող են միավոր հանել: Քեզ խնդիրը ասում է, որ "տրված է n թիվը", դու ինչի ես n-ը const բաժնում հայտարարում, այն էլ գրում =20 ?Ավելի լավա, ծրագրի begin-ից անմիջապես հետո գրես read(n):

BOBO
27.11.2010, 22:22
էտ ուրդից պեղեցիր:D

armen9494
27.11.2010, 22:24
Ես սկսնակ եմ և ինձ խորհուրդ են տվել սկսել այս լեզվից…
Ես կարդացել ու կարդում եմ տարբեր գրքեր այս լեզվի մասին...բայց չեմ կարողանում ստեղծած ֆայլի պարունակությունը տպիչով տպել...
Օգնեք խնդրում եմ
:(

Կարելի ա նաև այս ձև: Ձեր ծրագիրը գրելուց և save անելուց հետո մտեք այն տեղը, որտեղ կտեսնեք այդ ֆայլը (օրինակ cragir.pas) և այդ ծրագրի "տիպը" (.pas) փոխեք և սարքեք (.txt): Այսպես cragir.txt: Դրանից հետո դուք կկարողանաք բացել այն տեքստային խմբագրիչով և տպել, կամ փոխադրել word-ի միջավայր:

armen9494
27.11.2010, 22:34
program NMN;
uses crt;
var
i,j:integer;
m:array[1..100] of integer; {cankutyan depqum real}
z:integer; {kaxvat verevinic}
begin
writeln('Give me please the number for zangvat and the zangvat : ');
readln(n);
for i:=1 to n do read(m[i]);

for j:= 1 to n do
for i:=1 to n-1 do
if m[i]> m[i+1] then begin
z:=m[i];
m[i]:=m[i+1];
m[i+1]:=z;
end;

for i:=1 to n do write(m[i],' ');

readln(j);
end.

ծրագրի արտաքին տեսքի սիրունությունը քեզ եմ թողնում/:)բլոկ-սխեման էլ/
քո խնդրի համար n=4

Սա էլ ա սխալ, խնդիը ասում ա, տրված են a,b,c,d թվերը, իսկ դու ինչ որ վեկտոր ես ներմուծել: Այս խնդիրը պետք է լուծվի "պղպջակի ալգորիթմով", n1djhayko եթե դեռ պետք ա, ասա, կգրեմ:

armen9494
27.11.2010, 22:41
Dayana եթե հնարավորա ստուգի խղնդրեմ ,ճիշտ եմ կազմել բլոկը,թե չէ....
Խնդիրը հետևյալն է - կազմել բլոկ սխեմա ,որոնք տրված n բնական թվի համար կհաշվեն ու կտպեն տրված արտահայտության արժեքը.
http://djhaykobreaq.ucoz.ru/havai/asd.png

ԲԼՈԿԸ

http://djhaykobreaq.ucoz.ru/havai/.jpg

սխալա, դու էդտեղ պետք ա հետպայանով ցիկլ կազմակերպես, այնպես որ քո տրված n թիվը մեծ կամ հավասար լինի 5-ից: Ծրագրով կլինի այսպես
repeat read(n) until n>=5
Ու կաշխատի այսպես
եթե դու 5-ից փոքր թիվ ներմուծես, ծրագիրը կուզի, որ դու նորից n թիվը ներմուծես:

armen9494
27.11.2010, 22:43
էտ ուրդից պեղեցիր:D

Այսինքն?

BOBO
27.11.2010, 22:44
Այսինքն?

այսինքն էն որ 2 տարի առաջա գրվել դու ասումես կարողա միավոր հանեն:D

armen9494
27.11.2010, 22:48
այսինքն էն որ 2 տարի առաջա գրվել դու ասումես կարողա միավոր հանեն:D

Դե ես նոր եմ ստեղ մտել, սխալներ տեսա, ասեցի գրեմ, ինչ տարբերություն հին ա թե նոր: Կարողա ուրիշները տենան, իմանան թե ճիշտա ու շարունակեն օգտվել դրանից:)

deived
03.12.2010, 19:26
ժողովուրդ թե կարաք օգնեք գրեմ էլի շատա պետք.
Տրված է տող:Ստանալ նոր տող,որի մեջ սկզբից գրված լինեն տրված պայմանանշանից մեծ պայմանանշանները,հետո հավասարները,իսկ վերջում նրանից փոքրերը.

robot
12.12.2010, 11:18
Ժողովուրդ ջան, էս խնդիրը ով կարա լուծի? շատ շտապ ա պետք: mail կթողնեմ խնդրում եմ բլոկ-սխեման ու ծրագիրը ուղարկեք էդ mail-ին: Հիմա խնդիրը;

Տրված են n բնական թիվը և n արր պարունակող X միաչափ զանգվածը: Կազմել բլոկ սխեմա ու ծրագիր, որոնք կհաշվեն ու կտպեն զանգվածի այն տարրերի գումարը, որոնք մեծ են զանգվածի միակ երեքի աստիճան հանդիսացող տարրից:

e_mail: a357753[շնիկ]mail[կետ]ru

մի խնդրանք էլ, եթե դժվար չի, ծրագիրը բացի mail-ով ուղարկելուց, ստեղ էլ գրեք: Նախօրոք շնորհակալ եմ:

BOBO
14.12.2010, 15:00
բայց չկարացի նենց անեմ որ 3-ն էլ համարվի 3-ի աստիճան


program robot;
var x:array[1..100] of integer;
i,k,n,s,z:integer;
begin;
repeat write('n='); read(n) until (n>1) and (n<=100);
for i:=1 to n do
begin
write('x[',i,']=');
read(x[i]);
end;
for i:=1 to n do
if ((x[i] div 3) mod 3=0) and ((x[i] mod 3) mod 3=0) then begin k:=x[i];
repeat x[i]:=x[i] div 3 until x[i]<=3;
if x[i]=3 then z:=z+1;
end;
for i:=1 to n do
if x[i]>k then s:=s+x[i];
if z=1 then writeln('s=',s) else writeln('paymanin chi bavararum');
end.

konqi
18.12.2010, 20:28
բայց չկարացի նենց անեմ որ 3-ն էլ համարվի 3-ի աստիճան


program robot;
var x:array[1..100] of integer;
i,k,n,s,z:integer;
begin;
repeat write('n='); read(n) until (n>1) and (n<=100);
for i:=1 to n do
begin
write('x[',i,']=');
read(x[i]);
end;
for i:=1 to n do
if ((x[i] div 3) mod 3=0) and ((x[i] mod 3) mod 3=0) then begin k:=x[i];
repeat x[i]:=x[i] div 3 until x[i]<=3;
if x[i]=3 then z:=z+1;
end;
for i:=1 to n do
if x[i]>k then s:=s+x[i];
if z=1 then writeln('s=',s) else writeln('paymanin chi bavararum');
end.


BOBO դու հաստատ պոլիտեխից էս ))

robot
19.12.2010, 13:22
Շատ շնորհակալ եմ պատասխանի համար, konqi.

Արամ
19.12.2010, 13:57
Շատ շնորհակալ եմ պատասխանի համար, konqi.

այ ռոբոտ ջան Կոնքին չի լուծել Բոբոնա լուծել:

robot
19.12.2010, 22:54
Գտեմ այ Արամ ջան, ես BOBO-ին մի քանի օրա հարցեր էի տալիս, ինքը համբերատար պատասխանում էր, ամեն կերպ ուզում էր ինձ օգնած լիներ, ու շատ շատ օգնել ա, իրանից ես շնորհակալ եմ ու շնորհակալ, ուղղակի էտ գրագրությունը թեմայում չի էրևում, ես իրան նամակով եմ գրել

armen9494
20.12.2010, 17:23
var i,n:integer; x,y:array[1..20] of real; t,s:real;
begin repeat readln(n) until (n>1) and (n<=20);
For i:=1 to n do readln(x[i]);
t:=0;
For i:=1 to n do y[i]:=x[i];
For i:=1 to n do
begin repeat if y[i]/3=1 then break else y[i]:=y[i]/3 until y[i]<1;
If y[i]<1 then continue else
begin t:=x[i]; break
end
end;
S:=0;
For i:=1 to n do If x[i]>t then s:=s+x[i]; writeln('s=',s) end.


Հաշշվում է բոլոր դրական թվերի համար (3-ը ներառյալ):

armen9494
27.12.2010, 17:16
Ժողովուրդ խնդրում եմ օգնեք: Մի քանի օր առաջ կոմպիս վրա windows 7 դրեցի: Հիմա Turbo Pascal-ը չեմ կարողանում Fullscreen-ով օգտագործեմ (նաև չեմ կարողանում գրաֆիկական ռեժիմը օգտագործեմ), չի թողնում, գրումա "This system does not support fullscreen mode": Հնարավորա՞ ինչ-որ մի բան անեմ, որ կարողանամ օգտագործել սա, թե՞ պետք ա հրաժարվեմ windows 7-ից:

n1djhayko
30.12.2010, 01:42
Ժողովուրդ խնդրում եմ օգնեք: Մի քանի օր առաջ կոմպիս վրա windows 7 դրեցի: Հիմա Turbo Pascal-ը չեմ կարողանում Fullscreen-ով օգտագործեմ (նաև չեմ կարողանում գրաֆիկական ռեժիմը օգտագործեմ), չի թողնում, գրումա "This system does not support fullscreen mode": Հնարավորա՞ ինչ-որ մի բան անեմ, որ կարողանամ օգտագործել սա, թե՞ պետք ա հրաժարվեմ windows 7-ից:
Խորհուրդ կտաի հրաժարվել Turbo Pascal-ից և օգտագործել ABC Pascal...

armen9494
30.12.2010, 17:26
Խորհուրդ կտաի հրաժարվել Turbo Pascal-ից և օգտագործել ABC Pascal...

Մերսի խորհրդի համար, ես ել գիտեմ, որ ABC Pascal-ը ավելի լավնա, բայց հնարավոր չի դրանով օգտվել, քանի որ հիմա ինստիտուտում անցնում ենք Turbo Pascal, իսկ նրանց մեջ տարբերություն կա (նամանավանդ գրաֆիկական ռեժիմում): Իմ խնդրին ինչ որ լուծում կա՞:

armen9494
27.01.2011, 11:06
Ո՞ր օպերատորով կարելի է այնպես անել, որ տվյալ ստեղի(клавиш-ի) սեղմման դեպքում կատարվի ինչ-որ ֆունկցիա:

n1djhayko
05.05.2011, 16:23
Ժողովուրդ խնդրում եմ օգնեք: Մի քանի օր առաջ կոմպիս վրա windows 7 դրեցի: Հիմա Turbo Pascal-ը չեմ կարողանում Fullscreen-ով օգտագործեմ (նաև չեմ կարողանում գրաֆիկական ռեժիմը օգտագործեմ), չի թողնում, գրումա "This system does not support fullscreen mode": Հնարավորա՞ ինչ-որ մի բան անեմ, որ կարողանամ օգտագործել սա, թե՞ պետք ա հրաժարվեմ windows 7-ից:
Ես ինքս օգտագործում եմ Turbo Pascal Windows 7 օպերացիոն համակարգի վրա:Հիմա մենք անցնում ենք գրաֆիկա ,բայց քանի որ TPascal-ը win7-ում Fullscreen-ով չի աշխատում հետևաբար նաև գրաֆիկան չի աշխատում:Երկար փորփրեցի և գտա լուծում,,,Երբ համակարգիչը միացնում ես անվտանգ ռեժիմով ինքը ավտոմատ անջատումա մի քանի սլուժբաներ և վիդեոկարտա-ի դրայվերը ու առանց պռոբլեմ fullscreen-ով աշխատումա turbo pascal-ը,գրաֆիկան էլ հետը,,,

Դա կատարվում է այսպես


1.http://interactive.do.am/123/1.jpg
2.http://interactive.do.am/123/2.jpg
3. http://interactive.do.am/123/3.jpg

armen9494
07.05.2011, 08:59
Ես ինքս օգտագործում եմ Turbo Pascal Windows 7 օպերացիոն համակարգի վրա:Հիմա մենք անցնում ենք գրաֆիկա ,բայց քանի որ TPascal-ը win7-ում Fullscreen-ով չի աշխատում հետևաբար նաև գրաֆիկան չի աշխատում:Երկար փորփրեցի և գտա լուծում,,,Երբ համակարգիչը միացնում ես անվտանգ ռեժիմով ինքը ավտոմատ անջատումա մի քանի սլուժբաներ և վիդեոկարտա-ի դրայվերը ու առանց պռոբլեմ fullscreen-ով աշխատումա turbo pascal-ը,գրաֆիկան էլ հետը,,,

Դա կատարվում է այսպես


1.http://interactive.do.am/123/1.jpg
2.http://interactive.do.am/123/2.jpg
3. http://interactive.do.am/123/3.jpg

Ափսոս:( Իմանաի, չէի ջնջի windows7-ը

armen9494
16.09.2011, 22:20
Բարև ձեզ: Ժողովուրդ ջան, խնդրանքս ուղղված ա 2-րդ կուրսից բարձր կուրսի ՎՏ-ի Պոլիտեխնիկցիներին: Երկրորդ կուրսում դուք կուրսային աշխատանք եք գրել՝ ինֆորմատիկայից: Հիմա մեր հերթն է:)
Որ խնդրեմ, կարող եք ուղարկել ձեր գրած կուրսայինները: Ասեմ, որ ես հաստատ դրանցից ոչ մեկը չեմ ներկայացնելու, ունեմ էնքան խելք, որ ինքս գրեմ ու ինձ էլ կրակի մեջ չգցեմ, որ հարցնեն, թե էս մասը ինչի՞ ա արած, բերանս ջուր առնեմ, կանգնեմ:
Ինձ միայն պետք ա տեսնել, թե ինչ ձևի գործեր կան, ուզում եմ "ճաշակս զարգացնեմ":

Հ.Գ. եվ եթե խնդրեմ, կարող եք գրել, թե ո՞նց ա լինում կուրսայինի հանձնելու պահը: Ուղղակի հետաքրքիր ա: Ավելի լավ ա ՊՄ-ով գրեք, որ թեման օֆֆտոպի չվերածենք:
Նախապես շնորհակալություն:

armen9494
25.09.2011, 21:55
Ժողովուրդ, այս թեմայում գրառում անող կա :pardon
Եթե կա, կխնդրեի, որ օգնեիք: Իմ մոտ մի շաաաատ լուրջ պռոբլեմ կա:(
Ուզում էի գրեի ցանցային խաղ՝ Պասկալով, երկու համակարգչի համար: Կառուցվածքը այսպիսին է՝
մի համակարգիչը լինում է server իսկ մյուսը՝ client : Server-ի մեջ պահվում են ֆայլերը: Client-ը կարողանում է օգտվել այդ ֆայլերից:
Հիմա ամենալուրջ պահը՝ ինչպես անեմ, որ մի ծրագիրը կարողանա գրել, իսկ մյուսը կարդալ ֆայլը (միաժամանակ): Տալիս ա սխալ՝ Error 100: Disc read error
Կարծում եմ, որ սխալն այն պատճառաով է, որ այդ ֆայլը օգտագործվում է մյուս համակարգի կողմից:
Ինչպե՞ս լուծել այս պռոբլեմը, օգնեեեեեք:(

Նախապես շաաաաաատ շնորհակալություն

armen9494
26.09.2011, 22:01
Լավ, ոնց երևում ա էս թեման իրոք իմ մենախոսությունն ա դարձել :))
Ասեմ, որ արդեն գտա լուծումը: Եթե հանկարծ ինչ-որ մեկը լինի այս թեմայում և նրան հետաքրքրի սա, ասեք, կգրեմ:

MrKaren
26.11.2011, 11:19
Հարգելի ծրագրավորողներ, խնդրում եմ օգնեք մի այսպիսի խնդիր գրել Պասկալով...

Երկչափ զանգվածի մեջ հեռացնել բոլոր այն տողերը և սյուները, որոնց հատման տեղում գտնվում են բացասական էլեմենտները։ Տողի և սյունակի հեռացումը կատարել պրոցեդուրայի միջոցով։

եթե խնդիրը բարդ է և ժամանակատար, ապա խնդիրի դիմաց, կվճարեմ....

armen9494
30.11.2011, 17:37
Հարգելի ծրագրավորողներ, խնդրում եմ օգնեք մի այսպիսի խնդիր գրել Պասկալով...

Երկչափ զանգվածի մեջ հեռացնել բոլոր այն տողերը և սյուները, որոնց հատման տեղում գտնվում են բացասական էլեմենտները։ Տողի և սյունակի հեռացումը կատարել պրոցեդուրայի միջոցով։

եթե խնդիրը բարդ է և ժամանակատար, ապա խնդիրի դիմաց, կվճարեմ....

MrKaren ջան, խնդիրը մի փոքր ժամանակատար ա, կգրեմ մոտավորապես ինչ պիտի անես, կարծում եմ կհասկանաս:
Ուրեմն դու պիտի ստուգես մատրիցիդ բոլոր տարրերը ու որ տարրը որ բացասական ա դրա տողն ու սյունը պահես մի տեղ (կարող ես մի վեկտորի մեջ պահել, էս առաջին բանն էր որ մտքիս եկավ, հնարավոր է ակումբցիները ավելի խելոք բան առաջարկեն): Տողի ու սյան հեռացումն էլ պիտի կատարես այսպես. էդրա ներքևի տողից (կամ սյունից) սկսած պիտի մի-մի տող վերև բարձրացնես (սյուների դեպքում մի-մի սյուն ձախ տանես), այսինքն էդ տողում գրված յուրաքանչյուր տարր ցիկլով վերագրես վերևի տարրին:
Այ էս բոլդով գրածը պիտի պրոցեդուրայով սարքես. պրոցեդուրան պիտի ընդունի (ու վերադարձնի) քո մատրիցը, մատրիցիդ տողերի ու սյուների քանակը (էս պարտադիր չի, որ վերադարձնի, կարաս ղեկավարող ծրագրիդ մեջ պակասացնես), բացասական տարրիդ գտնվելու տողի ու սյան համարը:

Էս առաջին բանն էր, որ մտքիս եկավ;)

ucomik
01.12.2011, 16:49
ժողովուրդ կարողք օգնեք գրեմ էլի շատա պետք.
Տրված են n բնական թիվը և n տարր պարունակող x վեկտորը:Կազմել այնպիսի նոր Y վեկտորի ստացման և տպման բլոկ-սխեման ու ծրագիը որի տարերը ստացվում են սկզբից վերցնելով այն տարրերը, որոնք մեծ են տրված վեկտորի առաջին պարզ տարից, հետո նրան հավասար տարերը, իսկ վերջում նրանից փոքր տարրերը:

armen9494
01.12.2011, 18:10
ժողովուրդ կարողք օգնեք գրեմ էլի շատա պետք.
Տրված են n բնական թիվը և n տարր պարունակող x վեկտորը:Կազմել այնպիսի նոր Y վեկտորի ստացման և տպման բլոկ-սխեման ու ծրագիը որի տարերը ստացվում են սկզբից վերցնելով այն տարրերը, որոնք մեծ են տրված վեկտորի առաջին պարզ տարից, հետո նրան հավասար տարերը, իսկ վերջում նրանից փոքր տարրերը:

Էս դեպքում էլ էլի կարճ կոնկրետ գրեմ լուծման ձևը, չեմ կարող ամբողջը գրել:
Նախ ցիկլով ստուգի x-իդ յուրաքանչյուր տարրը և հենց հանդիպես պարզ տարրի ցիկլդ break արա: Հիմա նորից ցիկլով անցի տարրերի վրայով ու ստուգի՝ եթե էդ տարրից մեծ տարր կա, ապա գրի y վեկտորի հերթական համարով տարրի մեջ: Հետո նորից ցիկլ արա ու ստուգի, եթե էդ տարրին հավասար տարր կա, ապա գրի y վեկտորի հերթական համարով տարրի մեջ: Հետո նորից ցիկլ արա ու ստուգի, եթե էդ տարրից փոքր տարր կա, ապա գրի y վեկտորի հերթական համարով տարրի մեջ:

Պարզ տարրը ստուգի հետևյալ կերպ.
վերցրու թիվը ու սկսի ցիկլով բաժանել իրենից փոքր բոլոր թվերի վրա (մինչև երկուսը ներառյալ): Յուրաքանչյուր դեպքում ստուգի, եթե ինքը մնացորդ չունի, ապա շարունակի բաժանելը:
Օրինակ 5 թվի համար՝
5/4 - մնացորդը 1
5/3 - մնացորդը 2
5/2 - մնացորդը 1

հետևաբար 5-ը պարզ ա:

4 թվի համար՝
4/3 - մնացորդը 1
4/2 - մնացորդը 0

հետևաբար պարզ չի:

Aperna
02.12.2011, 22:59
ախպերներ ջան մի հատ սենց խնդիր ունեմ,կարաք օգնեք շատ գոհ կինեմ:)
տրված է N բնական թիվը և N տար պարունակող X միաչափի զանգվածը:
Կազմել բլոկ սխեմա և որը կհաշվեն և կտպեն y=X1+X1X2+X1X2X3..X1X2X3..Xm արտահայտել արժեքը որտեղ M վերջի բացասական տարի համարն է:
Եթե վեկտորը բացասական է տարր չունի ապա ընդունել է Y=0

Aperna
03.12.2011, 23:36
ախպերներ ջան մի հատ սենց խնդիր ունեմ,կարաք օգնեք շատ գոհ կինեմ:)
տրված է N բնական թիվը և N տար պարունակող X միաչափի զանգվածը:
Կազմել բլոկ սխեմա և որը կհաշվեն և կտպեն y=X1+X1X2+X1X2X3..X1X2X3..Xm արտահայտել արժեքը որտեղ M վերջի բացասական տարի համարն է:
Եթե վեկտորը բացասական է տարր չունի ապա ընդունել է Y=0
ոչմեկ չի կարա օգնի ես հարցում?

Varzor
05.12.2011, 13:36
ոչմեկ չի կարա օգնի ես հարցում?
Բլոկ-սեխամ ուղարկեմ, թե ծրագիրը? :)
Նաև կարող եմ ընդհանուր սկզբունքը նկարագրել:

Varzor
05.12.2011, 14:31
Խնդրի բլոկ-սխեման`
53570

Ծրագիրը`

PROGRAM P1;
USES CRT;
VAR
i, M, N, y : INTEGER;
S : REAL;
X:ARRAY[1..100] OF INTEGER;
BEGIN
CLRSCR;
WRITE ( 'N=' ) ; READLN ( N ) ;
FOR i:=1 TO N DO BEGIN
WRITE ( 'X[',i,']=' ) ;
READLN ( X[i] ) ;
END ;
M:=0;
y:=0;
FOR i:=1 TO N DO
IF ( X[i]<0 ) THEN
M:=i;
IF ( M>0 ) THEN BEGIN
S = 1;
FOR i:=1 TO M DO BEGIN
S:=S*X[i];
y:=y+S;
END;
END;
WRITELN('y=', y);
END.

Հ.Գ.
Արդեն 10 տարի է Pascal-ով բան չէի գրել :))

Aperna
05.12.2011, 15:02
Խնդրի բլոկ-սխեման`
53570

Ծրագիրը`

PROGRAM P1;
USES CRT;
VAR
i, M, N, y : INTEGER;
S : REAL;
X:ARRAY[1..100] OF INTEGER;
BEGIN
CLRSCR;
WRITE ( 'N=' ) ; READLN ( N ) ;
FOR i:=1 TO N DO BEGIN
WRITE ( 'X[',i,']=' ) ;
READLN ( X[i] ) ;
END ;
M:=0;
y:=0;
FOR i:=1 TO N DO
IF ( X[i]<0 ) THEN
M:=i;
IF ( M>0 ) THEN BEGIN
S = 1;
FOR i:=1 TO M DO BEGIN
S:=S*X[i];
y:=y+S;
END;
END;
WRITELN('y=', y);
END.

Հ.Գ.
Արդեն 10 տարի է Pascal-ով բան չէի գրել :))

Շաաատ շաաաատ մերսի շատ օգնեցիր ինձ:)
ես ես պասկալ ծրագրավորման լեզուն տանել չեմ կարում,չնայած եսա հիմքը C++-ի

ucomik
12.12.2011, 22:30
չեք ասի թե վոնց կարող եմ պասկալի բլոկ սխեման տեղափոխել word ծրագիրի մեջ?

armen9494
12.12.2011, 22:52
չեք ասի թե վոնց կարող եմ պասկալի բլոկ սխեման տեղափոխել word ծրագիրի մեջ?

word-ով գծի :pardon

MrKaren
21.12.2011, 19:25
Հարգելի ծրագրավորողներ, խնդրում եմ օգնեք մի այսպիսի խնդիր գրել Պասկալով...

Երկչափ զանգվածի մեջ հեռացնել բոլոր այն տողերը և սյուները, որոնց հատման տեղում գտնվում են բացասական էլեմենտները։ Տողի և սյունակի հեռացումը կատարել պրոցեդուրայի միջոցով։

եթե խնդիրը բարդ է և ժամանակատար, ապա խնդիրի դիմաց, կվճարեմ....

Չեք կարող օգնել՞ :(

Varzor
22.12.2011, 13:20
Չեք կարող օգնել՞ :(
Մենակ ծրագիրն է պետք, թե բլոկ-սխեման էլ հետը?
Դու ասա, հաստատ կօգնեմ ;)

MrKaren
22.12.2011, 17:41
Մենակ ծրագիրն է պետք, թե բլոկ-սխեման էլ հետը?
Դու ասա, հաստատ կօգնեմ ;)

ցանկալիէ բլոկ սխեման էլ հետը... նախորոք շաաաատ շնորհակալություն......

Varzor
23.12.2011, 10:14
ցանկալիէ բլոկ սխեման էլ հետը... նախորոք շաաաատ շնորհակալություն......
Դե ուրեմն հստակ և կոռեկտ ձևակերպիր խնդիրը` գրառումիդ մեջ անհասկանալի է խնդրի ձևակերպումը:
1. "տողերի և սյուների հատման կետում" արտահայտությունը անիմաստ է, որովհետև մատրիցի ցանկացած տարր գտնվում է որևէ տողի և սյան հատման կետում:
2. "հեռացնել տողը և սյունը" - այդպես կարող է մատրիցից բան չմնալ: Իսկ հեռացնելով պիտի ստանանք նոր մատրից, թե հենց նույն մատրիցի մեջ պիտի հեռացնենք?

MrKaren
23.12.2011, 18:46
Դե ուրեմն հստակ և կոռեկտ ձևակերպիր խնդիրը` գրառումիդ մեջ անհասկանալի է խնդրի ձևակերպումը:
1. "տողերի և սյուների հատման կետում" արտահայտությունը անիմաստ է, որովհետև մատրիցի ցանկացած տարր գտնվում է որևէ տողի և սյան հատման կետում:
2. "հեռացնել տողը և սյունը" - այդպես կարող է մատրիցից բան չմնալ: Իսկ հեռացնելով պիտի ստանանք նոր մատրից, թե հենց նույն մատրիցի մեջ պիտի հեռացնենք?

դե ետպես էր գրված...

1. երևի դա հաշվի չառնենք, իսկ երկրորդը պիտի 0 դարձվի, որ մատրիցը չխախտվի

Varzor
23.12.2011, 23:28
դե ետպես էր գրված...

1. երևի դա հաշվի չառնենք, իսկ երկրորդը պիտի 0 դարձվի, որ մատրիցը չխախտվի
Այսինքն` յուրաքանչյուր բացասական տարրի համար դրա տողի և սյան բոլոր տարրերը պիտի = 0? Եթե տենց լուծենք, հո սխալ չեն հաշվի?

MrKaren
24.12.2011, 00:24
Այսինքն` յուրաքանչյուր բացասական տարրի համար դրա տողի և սյան բոլոր տարրերը պիտի = 0? Եթե տենց լուծենք, հո սխալ չեն հաշվի?

չէ․․․ սխալ չի լինի․․․․

Varzor
24.12.2011, 03:09
չէ․․․ սխալ չի լինի․․․․

Էս քեզ ծրագիրը


PROGRAM P1;
USES
CRT;
TYPE
Matrix = array [1..10, 1..10] of REAL;
Vector = array [1..10] of INTEGER;
Var
X:Matrix;
Rows, Columns : Vector;
i, j, M, N : INTEGER;
PROCEDURE CANGEROWCOLUMN(RowColumnIndex, MaxRowColumn : INTEGER; ChangeRow : BOOLEAN; VAR X : Matrix);
Var
i, j : INTEGER;
BEGIN
IF ChangeRow = True THEN
FOR i:=1 to MaxRowColumn Do
X[RowColumnIndex,i]:=0
ELSE
FOR i:=1 to MaxRowColumn Do
X[i, RowColumnIndex]:=0;
END;
BEGIN
TEXTBACKGROUND(Blue);
CLRSCR;
WRITE('INPUT M=');
READLN(M);
WRITE('INPUT N=');
READLN(N);
FOR i:=1 to M Do
For j:=1 to N Do
BEGIN
GOTOXY(1+6*(j-1), 4+i);
READ(X[i,j]);
END;
FOR i:=1 to M Do
Rows[i]:=0;
FOR i:=1 to N Do
Columns[i]:=0;
FOR i:=1 to M Do
FOR j:=1 to N Do
IF X[i,j] < 0 THEN
BEGIN
Rows[i]:=1;
Columns[j]:=1;
END;
FOR i:=1 to M Do
IF Rows[i] = 1 THEN
CANGEROWCOLUMN(i, M, True, X);
FOR i:=1 to N Do
IF Columns[i] = 1 THEN
CANGEROWCOLUMN(i, N, False, X);
FOR i:=1 to M Do
For j:=1 to N Do
BEGIN
GOTOXY(1+6*(j-1), 4+M+1+i);
WRITE(X[i,j]:4:1);
END;
WRITELN;
READKEY;
END.


Էս էլ բլոկ-սխեման ու pas ֆայլը
53695

Բարով հանձնես ;)

MrKaren
24.12.2011, 08:47
Էս քեզ ծրագիրը


PROGRAM P1;
USES
CRT;
TYPE
Matrix = array [1..10, 1..10] of REAL;
Vector = array [1..10] of INTEGER;
Var
X:Matrix;
Rows, Columns : Vector;
i, j, M, N : INTEGER;
PROCEDURE CANGEROWCOLUMN(RowColumnIndex, MaxRowColumn : INTEGER; ChangeRow : BOOLEAN; VAR X : Matrix);
Var
i, j : INTEGER;
BEGIN
IF ChangeRow = True THEN
FOR i:=1 to MaxRowColumn Do
X[RowColumnIndex,i]:=0
ELSE
FOR i:=1 to MaxRowColumn Do
X[i, RowColumnIndex]:=0;
END;
BEGIN
TEXTBACKGROUND(Blue);
CLRSCR;
WRITE('INPUT M=');
READLN(M);
WRITE('INPUT N=');
READLN(N);
FOR i:=1 to M Do
For j:=1 to N Do
BEGIN
GOTOXY(1+6*(j-1), 4+i);
READ(X[i,j]);
END;
FOR i:=1 to M Do
Rows[i]:=0;
FOR i:=1 to N Do
Columns[i]:=0;
FOR i:=1 to M Do
FOR j:=1 to N Do
IF X[i,j] < 0 THEN
BEGIN
Rows[i]:=1;
Columns[j]:=1;
END;
FOR i:=1 to M Do
IF Rows[i] = 1 THEN
CANGEROWCOLUMN(i, M, True, X);
FOR i:=1 to N Do
IF Columns[i] = 1 THEN
CANGEROWCOLUMN(i, N, False, X);
FOR i:=1 to M Do
For j:=1 to N Do
BEGIN
GOTOXY(1+6*(j-1), 4+M+1+i);
WRITE(X[i,j]:4:1);
END;
WRITELN;
READKEY;
END.


Էս էլ բլոկ-սխեման ու pas ֆայլը
53695

Բարով հանձնես ;)

Մերսի........

MrKaren
24.12.2011, 18:28
Իրականացնել տրված ռեկուրենտ առնչությունները , կառուցել ստացված մեծությունների գրաֆիկները :

ԱԼԳՈՐԻԹՄ-1

1. α2=d1/c1 , α3=(d2-β2*b2)/Δ2 , αi+1=(di+βi*φi)/Δ i i=3, n-2

2. β2=e1/c1 , βi-1=ei/ Δ i i=2, n-3

3. γ2=f1/c1 , γ 3=(f2+ γ2*b2)/ Δ 2 , γi+1=(fi-γi-1*ai-γi*φi)/Δi i=3, n-1

4. Δ2=c2-α2*b2 , Δi=ci-βi-1*ai+αi*φi i=3 ,n-1

5. φi=αi-1*ai-bi i=3, n-1

6. yn-1=γn

7. yn-2=αn-1*yn-1+γn-1

8. yi=αi+1*yi+1-βi+1*yi+2+γi+1 i=n-3, 1




3

c1=29+12h/r12 , ci=30 i =2,n-2, cn-1=29+h/rn-1 Q=0.24

ai=1-h/ri i=3,n-1, bi=8(2-h/ri) i=2,n-1 a=0.513

di=8(2+h/ri) i=1,n-2, ei=1+h/ri i=1,n-3 c=0.00025

fi=48Qh2/πa2c2, i=1,n-1 , ri=a+ih , i=1,n-1 , h=c/n



Սենց բան հանդիպել է՞

MrKaren
24.12.2011, 18:56
Իրականացնել տրված ռեկուրենտ առնչությունները , կառուցել ստացված մեծությունների գրաֆիկները :

1. α2=d1/c1 , α3=(d2-β2*b2)/Δ2 , αi+1=(di+βi*φi)/Δ i i=3, n-2

2. β2=e1/c1 , βi-1=ei/ Δ i i=2, n-3

3. γ2=f1/c1 , γ 3=(f2+ γ2*b2)/ Δ 2 , γi+1=(fi-γi-1*ai-γi*φi)/Δi i=3, n-1

4. Δ2=c2-α2*b2 , Δi=ci-βi-1*ai+αi*φi i=3 ,n-1

5. φi=αi-1*ai-bi i=3, n-1

6. yn-1=γn

7. yn-2=αn-1*yn-1+γn-1

8. yi=αi+1*yi+1-βi+1*yi+2+γi+1 i=n-3, 1




3

c1=29+12h/r12 , ci=30 i =2,n-2, cn-1=29+h/rn-1 Q=0.24

ai=1-h/ri i=3,n-1, bi=8(2-h/ri) i=2,n-1 a=0.513

di=8(2+h/ri) i=1,n-2, ei=1+h/ri i=1,n-3 c=0.00025

fi=48Qh2/πa2c2, i=1,n-1 , ri=a+ih , i=1,n-1 , h=c/n

armen9494
25.12.2011, 16:35
Իրականացնել տրված ռեկուրենտ առնչությունները , կառուցել ստացված մեծությունների գրաֆիկները :

1. α2=d1/c1 , α3=(d2-β2*b2)/Δ2 , αi+1=(di+βi*φi)/Δ i i=3, n-2

2. β2=e1/c1 , βi-1=ei/ Δ i i=2, n-3

3. γ2=f1/c1 , γ 3=(f2+ γ2*b2)/ Δ 2 , γi+1=(fi-γi-1*ai-γi*φi)/Δi i=3, n-1

4. Δ2=c2-α2*b2 , Δi=ci-βi-1*ai+αi*φi i=3 ,n-1

5. φi=αi-1*ai-bi i=3, n-1

6. yn-1=γn

7. yn-2=αn-1*yn-1+γn-1

8. yi=αi+1*yi+1-βi+1*yi+2+γi+1 i=n-3, 1




3

c1=29+12h/r12 , ci=30 i =2,n-2, cn-1=29+h/rn-1 Q=0.24

ai=1-h/ri i=3,n-1, bi=8(2-h/ri) i=2,n-1 a=0.513

di=8(2+h/ri) i=1,n-2, ei=1+h/ri i=1,n-3 c=0.00025

fi=48Qh2/πa2c2, i=1,n-1 , ri=a+ih , i=1,n-1 , h=c/n


Որ ճիշտը ասեմ՝ չհասկացա թե ինչ ա, որ բացատրես, կփորձեմ օգնել:

Rudik_100
25.12.2011, 16:53
Տրված է n բնական թիվը և n տարր պարունակող միաչափ զանգվածը: Հաշվել զանգվածի առաջին պարզ տարրին նախորդող և վերջին պարզ տարրին հաջորդող տարրերի գումարը: Ենթադրվում է տրված վեկտորի առաջին և վերջին տարրերը պարզ չեն:
53706
Program a170;
var x:array[1..10] of integer;
i,n,j,l,k,s,t:integer;
begin read(n);

for i:=1 to n do read (x[i]);
s:=0;
for i:=1 to n do t:=0;
for j:=2 to x[i]-1 do if x[i] mod j = 0 then begin t:=1; if t=0 then l:=x[i];
write(l=x[i]);
end;
ՈՒզում եմ իմանամ ալգորիթմը եթե ճիշտ է...ծրագիրը ոնց կազմեմ:(

end.

armen9494
25.12.2011, 17:45
Տրված է n բնական թիվը և n տարր պարունակող միաչափ զանգվածը: Հաշվել զանգվածի առաջին պարզ տարրին նախորդող և վերջին պարզ տարրին հաջորդող տարրերի գումարը: Ենթադրվում է տրված վեկտորի առաջին և վերջին տարրերը պարզ չեն:
դե նախ եթե ասում է, որ "ենթադրվում է տրված վեկտորի առաջին և վերջին տարրերը պարզ չեն", ապա նրանց կարելի է ցիկլի մեջ չվերցնել: (ցիկլը առաջին տեղը սարքի 2,n-1 , իսկ երկրորդ տեղը n-1,2)
Ընդեղ երկու անգամն էլ որ գտնում ես պարզ թիվը ցիկլից միանգամից դուրս արի (break արա): Կարմիրով էդ մասը ուղղել եմ: Ալգորիթմը ոնց որ թե վերջացրած չէր, էդքան մասը ուղղել եմ, իմ կարծիքով ճիշտ եմ արել: Մեկ էլ հիշի ոչ թե x[i]-ն այլ հենց [i]-ն, որովհետև դու x[i]-ի հետ ոչ մի բան չես անելու, ինքը քեզ պետք չի գալու, քեզ իրա դիրքն ա պետք:
Էն կանաչ գույնով արածներս պարտադիր չեն, բայց ցանկալի են, քանի որ հենց ինքը մի անգամ T=1 գործողությունը արեց, նշանակում ա հասկացավ, որ թիվը պարզ չի, էլ ի՞նչ իմաստ ունի ստուգել մնացածի համար, դրա համար ըտեղից էլ break արա:
http://xmages.net/storage/10/1/0/4/3/upload/1f73f426.jpg

հիմա դու L-ի մեջ ունես առաջին պարզ թվի դիրքը, իսկ K-ի մեջ վերջին: Փորձի շարունակես, հիմա երկու ցիկլ էլի պիտի անես, որոնց մեջ հաշվես գումարը:

Կարամ նաև մի ավելի օպտիմալ տարբերակ առաջարկեմ.
ներմուծելուց հետո մի s փոփոխական վերցրու (s=x[1] ): Նորից 2,n-1 ցիկլ արա, որի մեջ նորից ստուգի պարզ թիվ լինելը: Եթե թիվը պարզ չի, ապա թող s=s+x[i] անի, հակառակ դեպքում (եթե պարզ ա) դուրս գա ցիկլից:
Ցիկլից դուրս գալուց հետո դու կունենաս s-ի մեջ մինչև առաջին պարզ թիվը եղած տարրերի գումարը:
Հետո s=s+x[n] արա: Ու նորից ցիկլ բացի (n-1, 2) ու նույն բանը արա, ինչ նախորդ ցիկլում:
Ի դեպ՝ էն s=s+x[n] կարող ես չանել, բայց սկզբում s=x[1]-ի փոխարեն պիտի գրես s=x[1]+x[n] , ուղղակի սկզբում ըտենց գրեցի, որ պարզ լինի, սաղ չխառնվի իրար:

Rudik_100
25.12.2011, 17:49
Իսկ ծրագիրը?

armen9494
25.12.2011, 17:52
Իսկ ծրագիրը?

դու փորձի գրես ինչքան կարում ես, ես սխալները կուղղեմ:
Ճիշտ կանես էն ասածս երկրորդ ալգորիթմը գծես, իմ կարծիքով էդ ավելի լավ եղանակ ա, ըտեղ 2 ցիկլ ես անում, իսկ ընդեղ 4:

Rudik_100
26.12.2011, 00:46
Արմեն ջան...ես կուզենայի 1 ալգորիթմով կազմել ծրագիրը...բայց մինչև ստեղ եմ կարացել գրել...
Program a170;
var x:array[1..10] of integer;
i,n,j,l,k,s,t:integer;
begin read(n);

for i:=1 to n do read (x[i]);
s:=0;
for i:=2 to n do t:=0;
for j:=2 to x[i]-1 do if x[i] mod j = 0 then begin t:=1; if t=0 then l:=յ;

end;
end.
Beginneri պահը չեմ կարողանում հասկանալ...((

Rudik_100
26.12.2011, 01:17
Program a170;
var x:array[1..10] of integer;
i,n,j,l,k,s,t:integer;
begin read(n);

for i:=1 to n do read (x[i]);
s:=0;
for i:=2 to n do t:=0;
for j:=2 to x[i]-1 do if x[i] mod j = 0 then begin t:=1; if t=0 then l:=j;
for i:=n to 2 do t:=0;
for j:=2 to x[i]-1 i do if x[i] mod j = 0 then t::=1 else if t:=0 then k:=j;
write(s:=(k+1)+(l-1));
end;
end.

Varzor
26.12.2011, 10:34
Տրված է n բնական թիվը և n տարր պարունակող միաչափ զանգվածը: Հաշվել զանգվածի առաջին պարզ տարրին նախորդող և վերջին պարզ տարրին հաջորդող տարրերի գումարը: Ենթադրվում է տրված վեկտորի առաջին և վերջին տարրերը պարզ չեն:
53706
Program a170;
var x:array[1..10] of integer;
i,n,j,l,k,s,t:integer;
begin read(n);

for i:=1 to n do read (x[i]);
s:=0;
for i:=1 to n do t:=0;
for j:=2 to x[i]-1 do if x[i] mod j = 0 then begin t:=1; if t=0 then l:=x[i];
write(l=x[i]);
end;
ՈՒզում եմ իմանամ ալգորիթմը եթե ճիշտ է...ծրագիրը ոնց կազմեմ:(

end.
Կցածդ նկարում ալգորիթմը անավարտ է` գումարի հաշվման մասը բացակայում է, բացի այդ տրամաբանական ու կառուցվածքային սխալներ կան, մասնավորապես թվի պարզության որոշման մասում:
Ծրագիրն էլ սխալ ես գրել:

Varzor
26.12.2011, 10:48
դե նախ եթե ասում է, որ "ենթադրվում է տրված վեկտորի առաջին և վերջին տարրերը պարզ չեն", ապա նրանց կարելի է ցիկլի մեջ չվերցնել: (ցիկլը առաջին տեղը սարքի 2,n-1 , իսկ երկրորդ տեղը n-1,2)
Ընդեղ երկու անգամն էլ որ գտնում ես պարզ թիվը ցիկլից միանգամից դուրս արի (break արա): Կարմիրով էդ մասը ուղղել եմ: Ալգորիթմը ոնց որ թե վերջացրած չէր, էդքան մասը ուղղել եմ, իմ կարծիքով ճիշտ եմ արել: Մեկ էլ հիշի ոչ թե x[i]-ն այլ հենց [i]-ն, որովհետև դու x[i]-ի հետ ոչ մի բան չես անելու, ինքը քեզ պետք չի գալու, քեզ իրա դիրքն ա պետք:
Էն կանաչ գույնով արածներս պարտադիր չեն, բայց ցանկալի են, քանի որ հենց ինքը մի անգամ T=1 գործողությունը արեց, նշանակում ա հասկացավ, որ թիվը պարզ չի, էլ ի՞նչ իմաստ ունի ստուգել մնացածի համար, դրա համար ըտեղից էլ break արա:
հիմա դու L-ի մեջ ունես առաջին պարզ թվի դիրքը, իսկ K-ի մեջ վերջին: Փորձի շարունակես, հիմա երկու ցիկլ էլի պիտի անես, որոնց մեջ հաշվես գումարը:

Կարամ նաև մի ավելի օպտիմալ տարբերակ առաջարկեմ.
ներմուծելուց հետո մի s փոփոխական վերցրու (s=x[1] ): Նորից 2,n-1 ցիկլ արա, որի մեջ նորից ստուգի պարզ թիվ լինելը: Եթե թիվը պարզ չի, ապա թող s=s+x[i] անի, հակառակ դեպքում (եթե պարզ ա) դուրս գա ցիկլից:
Ցիկլից դուրս գալուց հետո դու կունենաս s-ի մեջ մինչև առաջին պարզ թիվը եղած տարրերի գումարը:
Հետո s=s+x[n] արա: Ու նորից ցիկլ բացի (n-1, 2) ու նույն բանը արա, ինչ նախորդ ցիկլում:
Ի դեպ՝ էն s=s+x[n] կարող ես չանել, բայց սկզբում s=x[1]-ի փոխարեն պիտի գրես s=x[1]+x[n] , ուղղակի սկզբում ըտենց գրեցի, որ պարզ լինի, սաղ չխառնվի իրար:

Արմեն ջան, դու էլ բլոկ-սխեմայում մի փոքր բացթողում ես արել ;)
Բացի դրանից պարզ թվի որոշման մասն ունի երկրորդ (ավելի ճիշտ համարվող) տարբերակ` առանց ցիկլի բլոկի, պայմանի միջոցով, որ ծրագրում դառնա Repeat կամ While

armen9494
26.12.2011, 11:03
Program a170;
var x:array[1..10] of integer;
i,n,j,l,k,s,t:integer;
begin read(n);

for i:=1 to n do read (x[i]);
s:=0;
for i:=2 to n do t:=0;
for j:=2 to x[i]-1 do if x[i] mod j = 0 then begin t:=1; if t=0 then l:=j;
for i:=n to 2 do t:=0;
for j:=2 to x[i]-1 i do if x[i] mod j = 0 then t::=1 else if t:=0 then k:=j;
write(s:=(k+1)+(l-1));
end;
end.

Խորհուրդ կտամ մինչև ստեղ դնելը մի անգամ դիր Պասկալի մեջ ու տես, թե ոնց ա աշխատում: Ընդեղ մի երկու հատ կետերի ու ստորակետերի սխալներ կան, բայց կարծում եմ էդ էդքան կարևոր չի, որ գրես ընդեղ, ինքդ էլ կհասկանաս:
Ամենակարևոր բաներից մեկն ասեմ, ընդեղ բլոկ սխեմայի մեջ ուշադրություն չէի դարձրել, հիմա նկատեցի, խոսքը n-ի ներմուծման մասին ա: Քանի որ դու հայտարարում ես, որ վեկտորդ պիտի 10 տարր ունենա, ուրեմն պիտի նաև ապահովես, որ n-դ լինի ընկած [1,10] միջակայքում: Եվ քանի որ քո ծրագրում գոնե 4 թիվ պիտի լինի, էդ միջակայքը կդառնա [4,10]: Ծրագրում էդ կլինի սենց՝
repeat read(n) until (n>=4) and (n<=10);
եթե ուզում ես, կարող եմ բլոկ սխեման էլ էդ մասը գծել:

Հա, մեկ էլ write(s:=(k+1)+(l-1)); սա Պասկալում անիմաստություն ա, դու չես կարող արտածման ֆունկցիայի մեջ վերագրում անես: Դու կարո՞ղ ա c++ գիտես, որովհետև ընդեղ ա էս կարգի բաներ թույլատրվում:

Հլը կարող ենք չվռազել, ոնց որ Վարզորը ավելի լավ առաջարկ ունի:

armen9494
26.12.2011, 11:04
Արմեն ջան, դու էլ բլոկ-սխեմայում մի փոքր բացթողում ես արել ;)
Բացի դրանից պարզ թվի որոշման մասն ունի երկրորդ (ավելի ճիշտ համարվող) տարբերակ` առանց ցիկլի բլոկի, պայմանի միջոցով, որ ծրագրում դառնա Repeat կամ While

Հնարավոր ա, դրա համար էլ գրեցի իմ կարծիքով ճիշտ եմ արել :)
Պարզ թվի պահով եթե չեմ սխալվում մի ձև կար, որ բաժանելով գալիս էինք մինչև էդ թվի կեսը, եթե մինչ այդ չեղավ, ուրեմն էլ չէր լինի: Եթե ճիշտ եմ հիշում, սենց ինչ-որ տարբերակ կար, բայց ես սրա բացատրությունը չգիտեմ, դրա համար չեմ գրել, հնարավոր ա նաև որ սխալվում եմ:

Varzor
26.12.2011, 13:03
Հնարավոր ա, դրա համար էլ գրեցի իմ կարծիքով ճիշտ եմ արել :)
Պարզ թվի պահով եթե չեմ սխալվում մի ձև կար, որ բաժանելով գալիս էինք մինչև էդ թվի կեսը, եթե մինչ այդ չեղավ, ուրեմն էլ չէր լինի: Եթե ճիշտ եմ հիշում, սենց ինչ-որ տարբերակ կար, բայց ես սրա բացատրությունը չգիտեմ, դրա համար չեմ գրել, հնարավոր ա նաև որ սխալվում եմ:
Այո, "մինչև կեսը" տարբերակը կա` դա ճիշտ է ու մաթեմատիկորեն հիմնավորված: Բացի այդ դասական տարբերակով դա չեն անում for ցիկլի միջոցով, այլ կիրառում են Whileև Repeat օպերատորները:

armen9494
26.12.2011, 19:27
Այո, "մինչև կեսը" տարբերակը կա` դա ճիշտ է ու մաթեմատիկորեն հիմնավորված: Բացի այդ դասական տարբերակով դա չեն անում for ցիկլի միջոցով, այլ կիրառում են Whileև Repeat օպերատորները:

իսկ for-ի ի՞նչն ա "վատ"

Varzor
27.12.2011, 09:47
իսկ for-ի ի՞նչն ա "վատ"
Վատի մասին չի խոսքը, խոսքը դասական ալգորիթմի մասին է: Զուտ բառերով էլ որ նկարագրում ես ալգորիթմը ու հետո թարգմանում բլոկ-սխեմայի` ցիկլի բլոկ չես ունենում:

armen9494
27.12.2011, 12:24
Վատի մասին չի խոսքը, խոսքը դասական ալգորիթմի մասին է: Զուտ բառերով էլ որ նկարագրում ես ալգորիթմը ու հետո թարգմանում բլոկ-սխեմայի` ցիկլի բլոկ չես ունենում:

Հասկացա ասածդ ինչ ա, ճիշտ ա, էդ դեպքու մի "առավելություն" էլ ունես՝ break չես օգտագործում: Ինձ չի թվում, որ դա մի եսիմինչ առավելություն ա, բայց երևի թե առանց դրա ավելի գրագետ ա: Չնայած էն դեպքում էլ կարաս break չօգտագործես, բայց դե ինչ որայա :))

Varzor
27.12.2011, 17:36
Հասկացա ասածդ ինչ ա, ճիշտ ա, էդ դեպքու մի "առավելություն" էլ ունես՝ break չես օգտագործում: Ինձ չի թվում, որ դա մի եսիմինչ առավելություն ա, բայց երևի թե առանց դրա ավելի գրագետ ա: Չնայած էն դեպքում էլ կարաս break չօգտագործես, բայց դե ինչ որայա :))
Բացի այդ պրոցեսորի տակտերի օգտագործման տեսանկյունից ավելի օպտիմալ է համարվում: Վախտին կոմպերը այսքան արագագործ չէին ;)
Ըստ էության For I:=M to N Do Begn .... End; կոնստրուկցիան իրենից ներկայացնում է հետևյալ կոնստրուկտիվ հաջորդականությունը.

I:=M
Repeat
Begin
....
I:=I+1
End;
Until I<=N;

Սա էլ իր հերթին կառուցված է մոտավորապես այսպե
I:=M
Label: 10 If I < =N Then
Begin
....
I:=I+1
GoTo 10;
End;

Այս վերջին տարբերակն էլ հենց համարվում է ալգորիթմի դասական նկարագրությունը: Սակայն ծրագրավորման մեջ ձևավորված է մի ավանդույթ` անպայման անցման հրամաններից անհրաժեշտ է հնարավորինս խուսափել:

armen9494
28.12.2011, 00:03
Բացի այդ պրոցեսորի տակտերի օգտագործման տեսանկյունից ավելի օպտիմալ է համարվում: Վախտին կոմպերը այսքան արագագործ չէին ;)
Ըստ էության For I:=M to N Do Begn .... End; կոնստրուկցիան իրենից ներկայացնում է հետևյալ կոնստրուկտիվ հաջորդականությունը.

I:=M
Repeat
Begin
....
I:=I+1
End;
Until I<=N;

Սա էլ իր հերթին կառուցված է մոտավորապես այսպես
I:=M
Label: 10 If I < =N Then
Begin
....
I:=I+1
GoTo 10;
End;

Այս վերջին տարբերակն էլ հենց համարվում է ալգորիթմի դասական նկարագրությունը: Սակայն ծրագրավորման մեջ ձևավորված է մի ավանդույթ` անպայման անցման հրամաններից անհրաժեշտ է հնարավորինս խուսափել:

Ճիշտն ասած՝ չգիտեի որ For-ը ավելի դանդաղ է աշխատում, քան նախապայմանով կամ հետպայմանով ցիկլը: Ճիշտն ասած էս վերջերս մի քիչ "քթի մազ" եմ դառել էդ արագության հարցով, միշտ ամեն մի խնդիր գրելիս առաջնային պայմաններից ա արագագործությունը (ծավալը երկրորդային ա): Վատը էն ա, որ շատ գործողությունների արագություններ (որը որից է արագ) չկան ոչ մի տեղ նշված (համենայն դեպս ես չեմ հանդիպել):
Այ էդ անցման հրամաններից խուսափելու ավանդույթը ըտենց էլ չսիրեցի, շատ տեղեր կա, որ կարաս շատ հեշտ goto-ով անես, բայց դա "թույլատրված չէ":
Ասում են, մթոմ դժվար գտնելու հետ է կապված, բայց դե ես չեմ կարծում, որ խնդիրը դրանում լինի:

Varzor
28.12.2011, 06:16
Ճիշտն ասած՝ չգիտեի որ For-ը ավելի դանդաղ է աշխատում, քան նախապայմանով կամ հետպայմանով ցիկլը: Ճիշտն ասած էս վերջերս մի քիչ "քթի մազ" եմ դառել էդ արագության հարցով, միշտ ամեն մի խնդիր գրելիս առաջնային պայմաններից ա արագագործությունը (ծավալը երկրորդային ա): Վատը էն ա, որ շատ գործողությունների արագություններ (որը որից է արագ) չկան ոչ մի տեղ նշված (համենայն դեպս ես չեմ հանդիպել):
Այ էդ անցման հրամաններից խուսափելու ավանդույթը ըտենց էլ չսիրեցի, շատ տեղեր կա, որ կարաս շատ հեշտ goto-ով անես, բայց դա "թույլատրված չէ":
Ասում են, մթոմ դժվար գտնելու հետ է կապված, բայց դե ես չեմ կարծում, որ խնդիրը դրանում լինի:
Հա, FOR-ը ավելի դանդաղ է աշխատում` չափումներ ենք արել ;)
Արագ-դանդաղ կատարվելը կարելի է որոշել` ASSEMBLER-ի կոդը բացում ես ու որքան ավելի շատ տողեր կան մեջը, այդքան ավելի շատ գործողություններ են ատարվում` ավելի շատ պրոցեսորի տակտեր է օգտագործվում:
Իրոք` ոչ մի տեղ գրված չի, քանի որ դա կախված է կոնկրետ կոմպիլյատորից ու մենակ դրա հեղինակը կիմանա:
Շատ տեղեր կա, որ առանց GoTO ուղղակի անհնար է:
Խնդիրը կայանում էր հետևյալում.
յուրաքանչյուր ծրագրի համար համակարգչի հիշողությունում բացվում է ստեկ, որի մեջ էլ գրանցվում են փոփոխականները, կատարվող գործողությունները և այլն: GoTo-ի պարագայում լինում էին դեպքեր, որ ուղղակի կատարվող կոդի հատվածը դուրս էր մնում ստեկից ու կախվում էր: Հիմա այլևս տենց բա չկա: Սա տեխնիկական մասն է, բայց կա նաև մաթեմատիկական մասը: Եթե օգտագործել ես անպայման անցման հրամանը, ապա դա նշանակում է, որ օգտագործածդ ալգորիթմը մեծ հավանականությամբ վերանայման կարիք ունի` ինչ որ պայմանով կարելի էր բավարարվել:

Դե դժվար գտնելն էլ զուտ սուբեկտիվ գործոններից է` եթե label-ից GoTo հատվածը երկար է, եթե ծրագրի կոդում կան բազմաթիվ ցիկլեր: Պատկերացնում ես քանի հատ Label պիտի գրվի? ու եթե ասենք նախոր label-ը մի 1500 տող վերևում է, ապա դրա համարը հանկարծ չկրկնելու համար ստիպված ես լինում բարձրանալ վերև ու նայել ;)

MrKaren
28.12.2011, 09:40
Իրականացնել տրված ռեկուրենտ առնչությունները , կառուցել ստացված մեծությունների գրաֆիկները :

ԱԼԳՈՐԻԹՄ-1

1. α2=d1/c1 , α3=(d2-β2*b2)/Δ2 , αi+1=(di+βi*φi)/Δ i i=3, n-2

2. β2=e1/c1 , βi-1=ei/ Δ i i=2, n-3

3. γ2=f1/c1 , γ 3=(f2+ γ2*b2)/ Δ 2 , γi+1=(fi-γi-1*ai-γi*φi)/Δi i=3, n-1

4. Δ2=c2-α2*b2 , Δi=ci-βi-1*ai+αi*φi i=3 ,n-1

5. φi=αi-1*ai-bi i=3, n-1

6. yn-1=γn

7. yn-2=αn-1*yn-1+γn-1

8. yi=αi+1*yi+1-βi+1*yi+2+γi+1 i=n-3, 1




3

c1=29+12h/r12 , ci=30 i =2,n-2, cn-1=29+h/rn-1 Q=0.24

ai=1-h/ri i=3,n-1, bi=8(2-h/ri) i=2,n-1 a=0.513

di=8(2+h/ri) i=1,n-2, ei=1+h/ri i=1,n-3 c=0.00025

fi=48Qh2/πa2c2, i=1,n-1 , ri=a+ih , i=1,n-1 , h=c/n



Սենց բան հանդիպել է՞

Վերևում պահանջը սխալ է....
http://s57.radikal.ru/i158/1112/e7/96face82ef0ct.jpg (http://radikal.ru/F/s57.radikal.ru/i158/1112/e7/96face82ef0c.jpg.html)

armen9494
28.12.2011, 12:04
Հա, FOR-ը ավելի դանդաղ է աշխատում` չափումներ ենք արել ;)
Արագ-դանդաղ կատարվելը կարելի է որոշել` ASSEMBLER-ի կոդը բացում ես ու որքան ավելի շատ տողեր կան մեջը, այդքան ավելի շատ գործողություններ են ատարվում` ավելի շատ պրոցեսորի տակտեր է օգտագործվում:
Իրոք` ոչ մի տեղ գրված չի, քանի որ դա կախված է կոնկրետ կոմպիլյատորից ու մենակ դրա հեղինակը կիմանա:
Շատ տեղեր կա, որ առանց GoTO ուղղակի անհնար է:

իսկ մեզ ասում էին, որ յուրաքանչյուր GoTo կարելի է փոխարինել while-երով և /կամ/ repeat-երով:



Դե դժվար գտնելն էլ զուտ սուբեկտիվ գործոններից է` եթե label-ից GoTo հատվածը երկար է, եթե ծրագրի կոդում կան բազմաթիվ ցիկլեր: Պատկերացնում ես քանի հատ Label պիտի գրվի? ու եթե ասենք նախոր label-ը մի 1500 տող վերևում է, ապա դրա համարը հանկարծ չկրկնելու համար ստիպված ես լինում բարձրանալ վերև ու նայել ;)
դե էդ էդքան էլ լուրջ խնդիր չեմ համարում, օգտագործելիս յուրաքանչյուր goto-ի կողքը կոմմենտի ձևով կարող ես գրել, թե որ տողում է label-ը:

Varzor
28.12.2011, 15:58
իսկ մեզ ասում էին, որ յուրաքանչյուր GoTo կարելի է փոխարինել while-երով և /կամ/ repeat-երով:
Այո, իհարկէ ցանկացած goto կարելի է փոխարինել ցիկլով ուղղակի դրանք կլինեն անիմաստ ցիկլիկ հրամաններ: Նույն հաջողությամբ կարելի է ամբողջ թվերով a:=b*c ի փոխարեն գրել a:=0; FOR i:=1 to b do a:=a+c; Էլի կաշխատի, սակայն քլունգ տարբերակ է:
Կոնկրետ օրինակ բերեմ?

դե էդ էդքան էլ լուրջ խնդիր չեմ համարում, օգտագործելիս յուրաքանչյուր goto-ի կողքը կոմմենտի ձևով կարող ես գրել, թե որ տողում է label-ը:
Դե արդեն իսկ գրել էի, որ դա սուբյեկտիվ պատճառ է: Մարդ կա տասնյակ հազարավոր ծրագրային կոդ է հիշում (:oy)

armen9494
28.12.2011, 21:34
Այո, իհարկէ ցանկացած goto կարելի է փոխարինել ցիկլով ուղղակի դրանք կլինեն անիմաստ ցիկլիկ հրամաններ: Նույն հաջողությամբ կարելի է ամբողջ թվերով a:=b*c ի փոխարեն գրել a:=0; FOR i:=1 to b do a:=a+c; Էլի կաշխատի, սակայն քլունգ տարբերակ է:
Կոնկրետ օրինակ բերեմ?


Կոնկրետ օրինակ պետք չի, ինքս էլ եմ հանդիպել. ամենասովորական բանը էն ա, որ մի քանի հատ իրար մեջ կառուցված ցիկլերից միանգամից ուզում ես դուրս գաս :)

JoKer777
13.01.2012, 14:18
Հարգելի ծրագրավորողներ, խնդրում եմ օգնեք գրել հետևյալ խնդիրը պասկալ լեզվով...

Տրված է տեքստ, դուրս գրել բոլոր պալինդրոմները և որոշել դրանց քանակը (Պալինդրոմը դա հակադարձվող բառերն են)։

նախապես շնորհակալություն

Varzor
13.01.2012, 14:28
Հարգելի ծրագրավորողներ, խնդրում եմ օգնեք գրել հետևյալ խնդիրը պասկալ լեզվով...
Տրված է տեքստ, դուրս գրել բոլոր պալինդրոմները և որոշել դրանց քանակը (Պալինդրոմը դա հակադարձվող բառերն են)։
նախապես շնորհակալություն
Մենակ ծրագիրը, թե բլոկ-սխեման էլ հետը?

armen9494
13.01.2012, 14:31
Հարգելի ծրագրավորողներ, խնդրում եմ օգնեք գրել հետևյալ խնդիրը պասկալ լեզվով...

Տրված է տեքստ, դուրս գրել բոլոր պալինդրոմները և որոշել դրանց քանակը (Պալինդրոմը դա հակադարձվող բառերն են)։

նախապես շնորհակալություն

իսկ հակադարձվող բառը ո՞րն ա

Varzor
13.01.2012, 14:35
իսկ հակադարձվող բառը ո՞րն ա
այն բառն է, որ երկու կողմից կարդում ես` նույն բառն է:
Օրինակ`
տատ, պապ, կատակ, ցեց, մոմ և այլն

JoKer777
13.01.2012, 15:16
Մենակ ծրագիրը, թե բլոկ-սխեման էլ հետը?

եթե հնարավորա բլոկ սխեման էլ հետը։ շնորհակալություն

JoKer777
13.01.2012, 21:08
եթե հնարավորա բլոկ սխեման էլ հետը։ շնորհակալություն

ինետում խնդիրը գտա, բայց սա մենակ գտնում է այդ բառերը...


program z5;
{ Дан текст. Найти все палиндромы (т.е. слова-перевертыши) в этом тексте.}
uses crt;
var
b,a,k: string;
i,j,q: longint;
c: array[1..30] of string;
begin
clrscr; {очищаем дисплей}
write('vvedite text razdelennij probelami: ');
readln(a); {чтение введенного текста}
b:=''; {инициализация переменных}
j:=1;
k:='';
for i:=1 to length(a) do if (a[i]=' ') then begin {ищем пробелы в тексте}
c[j]:=b; {если есть ' ', то }
inc(j); { запоминаем слово }
b:='';
end else b:=b+a[i]; c[j]:=b;
for i:=1 to j do begin {проверяем, является ли слово палиндромом}
b:=c[i];
k:='';

for q:=1 to length(b) do k:=b[q]+k;
if b=k then writeln(b); {сравнение и вывод результата}
end;
readln;
end.

armen9494
14.01.2012, 15:21
Այսինքն մնու՞մ ա մենակ քանակը, հա՞ :)


program z5;
{ Дан текст. Найти все палиндромы (т.е. слова-перевертыши) в этом тексте.}
uses crt;
var
b,a,k: string;
i,j,q: longint;
n: integer;
c: array[1..30] of string;
begin
clrscr; {очищаем дисплей}
write('vvedite text razdelennij probelami: ');
readln(a); {чтение введенного текста}
b:=''; {инициализация переменных}
n:=0;
j:=1;
k:='';
for i:=1 to length(a) do if (a[i]=' ') then begin {ищем пробелы в тексте}
c[j]:=b; {если есть ' ', то }
inc(j); { запоминаем слово }
b:='';
end else b:=b+a[i]; c[j]:=b;
for i:=1 to j do begin {проверяем, является ли слово палиндромом}
b:=c[i];
k:='';

for q:=1 to length(b) do k:=b[q]+k;
if b=k then begin n:=n+1; writeln(b); end; {сравнение и вывод результата}
end; writeln(n);
readln;
end.

barbatus
20.11.2012, 13:49
Հարգելի ծրագրավորողներ խնդրում եմ օգնեք

Տրված են n բնական թիվը և n բնական տարրեր պարունակող x վեկտորը:Կազմել այնպիսի նոր Y վեկտորի ստացման և տպման բլոկ-սխեման ու ծրագիը որի տարերը ստացվում են սկզբից վերցնելով տրված վեկտորի պարզ տարերը, հետո մնացածները:
Տրված վեկտորի տարերը նախապես դարձնել ամբողջ տիպի:



Շաատ շնորհակալ կլինեմ որ օգնեք մաիլ nerses.khachatryan@mail.ru

karik
21.12.2012, 19:17
խնդրում եմ օգնեք
կազմել ծրագիր որը կհաշվի s=∑_(k=1)^12▒〖(k+5〗) *∑_(i=1)^k▒〖i+k〗արտահայտության արժեքը

loginUTD
07.01.2014, 13:12
Բարև բոլորին,ինձ անհրաժեշտ է հետևյալ խնդրի լուծումը և բլոկ սխեման......ուղղակի նոր եմ բանակից եկել ու ամեն ինչ մոռացել եմ)))նախապես շնորհակալություն:

Տրված է n տարր պարունակող միաչափ զանգված:Հաշվել և արտածել զանգվածի մեծագույն տարրը և տարրի համարը:

Life
21.12.2014, 20:39
Էս թեման լրիվ մեռած ա ոնցոր:blin հասկաղոցներ կան,ինչ-որ մեկը կարա օգնի մի հատ խնդրի լուծել?