رفتن به مطلب

آرشیو(قبل از مرتب سازی در تیر 91)


ارسال های توصیه شده

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

Richard Petela - Engineering Thermodynamics of Thermal Radiation: for Solar Power Utilization

McGraw-Hill Professional | ISBN: 0071639624 | 2010-01-12 | PDF | 416 pages | 2.51 Mb

 

Complete coverage of the thermodynamics of radiation matter for solar energy utilization

This comprehensive guide reviews the fundamentals of the thermodynamics of radiation matter--photon gas. The book introduces the exergy of radiation through the most advanced thermodynamic analysis of the solar power processes involving radiation.

 

Engineering Thermodynamics of Thermal Radiation: For Solar Power Utilization provides, for the first time, an exhaustive discussion on energy and exergy analysis of radiation processes. Extensive details on the exergy of radiation are developed for evaluation of the practical uses of radiation. This volume contains quantitative calculation examples for solar heating, a solar chimney power plant, photosynthesis, and photovoltaic technology. Addressed to researchers, designers, and users of different solar installations, the book also has the potential to inspire the development of new applications of radiation exergy.

 

Coverage includes:

- Definitions and laws of substance and radiation

- Laws of thermodynamic analysis, including energy and exergy analysis

- Thermodynamic properties of photon gas

- Exergy of emission and arbitrary radiation flux

- Energy, entropy, and exergy radiation spectra of surfaces

- Thermodynamic analysis of heat from the sun, a solar chimney power plant, photosynthesis, and the photovoltaic

 

Download:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • Like 1
لینک به دیدگاه
  • پاسخ 760
  • ایجاد شد
  • آخرین پاسخ

بهترین ارسال کنندگان این موضوع

بهترین ارسال کنندگان این موضوع

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

Henry Valberg, "Applied Metal Forming: Including FEM Analysis"

Cambridge University Press | 2010 | ISBN: 0521518237 | 460 pages | PDF | 11,3 MB

 

Applied Metal Forming: Using FEM Analysis describes metal forming theory and how experimental techniques can be used to study any metal forming operation with great accuracy. For each primary class of processes, such as forging, rolling, extrusion, wiredrawing, and sheet-metal forming, it explains how FEA (Finite Elements Analysis) can be applied with great precision to characterize the forming condition and in this way optimize the processes. FEA has made it possible to build very realistic FEM-models of any metal forming process, including complex three-dimensional forming operations, in which complex products are shaped by complex dies. Thus, using FEA it is now possible to visualize any metal forming process and to study strain, stresses, and other forming conditions inside the parts being manufactured as they develop throughout the process.

 

 

Download

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • Like 1
لینک به دیدگاه

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

Vladimir V. Mitin, Dmitry I. Sementsov, Nizami Z. Vagidov, "Quantum Mechanics for Nanostructures"

Cambridge University Press | 2010 | ISBN: 0521763665 | 448 pages | PDF | 3,2 MB

 

The properties of new nanoscale materials, their fabrication and applications, as well as the operational principles of nanodevices and systems, are solely determined by quantum-mechanical laws and principles. This textbook introduces engineers to quantum mechanics and the world of nanostructures, enabling them to apply the theories to numerous nanostructure problems. The textbook covers the fundamentals of quantum mechanics, including uncertainty relations, the Schrödinger equation, perturbation theory, and tunneling. These are then applied to a quantum dot, the smallest artificial atom, and compared to hydrogen, the smallest atom in nature. Nanoscale objects with higher dimensionality, such as quantum wires and quantum wells, are introduced, as well as nanoscale materials and nanodevices. Numerous examples throughout the text help students to understand the material.

 

 

Download

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • Like 1
لینک به دیدگاه

زبان پاسكال يكي از زبانهاي برنامه سازي است كه ويژگيهاي آموزشي آن بسيار بالاست يعني زبان خوبي براي آموزش برنامه نويسي منظم و دقيق است.قابليت خوانايي و درك برنامه هاي اين زبان بالاست وميتوان برنامه هايي نوشت كه احتمال خطاهاي آنها بسيار اندك باشد علتش اين است كه يك زبان ساختار يافته (structed) است . ساختار كلي برنامه چيست؟

1-تعريف

2-به وسيله procedure و functionقسمتهاي تكراري را از بين ببريم

3-بدنه

فرم كلي پاسكال:

اسم Program

; تعريف ثابت const

; تعريف نوع type

; تعريف متغيرها var

)پارامترها ) نام procedure

begin

____

____

____

end ;

; ( پارامترها ) نام نوع تابع function

begin

____

____

____

end ;

begin

____

____

____

end .

متغير : محلي است كه داراي يك اسم مي باشد و مي توان مقداري را در آن ذخيره كرد

انواع متغيرها در پاسكال:

Integer :انواع عددي صحيح شامل اعداد بدون نقطه مميز است

نوع مقاديري كه مي پذيرند طول(بايت)

byte 0 تا 255 1

Shortint 128- تا 127 1

integer 32768- تا 32767 2

Word 0 تا 65535 2

Longint 2147483648- تا 2147483647 4

اعداد اعشاري:

انواع عددي اعشاري شامل اعدادي با نقطه مميز است

نوع مقاديري كه ميپذيرند ارقام با معني طول(بايت)

single 1.5e-45 تا3.4e38 7 تا 8 4

real 2.9e-39 تا 1.7e38 11 تا 12 6

Double 5.0e-324تا 1.7e308 15 تا 16 8

extended 1.9e-4951تا 1.1e493 19 تا 20 10

انواع داده هاي اعشاري

-Char :

نوع داده كاراكتري كه با كلمه char مشخص مي شود ميتواند يك كاراكتر را در خود نگهداري كند بنابراين كاراكترها در يك بايت از حافظه كامپيوتر ذخيره مي شوند

String - :

اين نوع داده ها براي ذخيره رشته ها مثل اسامي افراد به كار مي رود و با كلمه كليدي string مشخص ي گردد

براي هر رشته بايد طول معلوم كنيم اگر طولي تعريف نشود به طور پيش فرض 80 در نظر گرفته ميشود(مقدار طول حداكثر 255 است)

- Boolean :

نوع ديگري از داده ها در پاسكال وجود دارند كه داده هاي بولي خوانده مي شوند مقادير بولي داراي دو ارزش درستي يا نادرستي اند كه در پاسكال با صفر و يك نمايش داده مي شوند صفر به معني نادرستي و يك به معني درستي به كار ميرود اين نوع داده ها با كلمه Boolean تعريف ميشوند.

دستورات ورودي در پاسكال:

دستور Readlnبراي خواندن اطلاعات از ورودي به كار ميرود.

فرمت آن به صورت مقابل است:

(اسامي متغيرها)read/ln

اسامي متغيرها بايد با كاما از يكديگر جدا شوند..

براي چاپ اطلاعات در خروجي از دستور write/ln استفاده ميكنيم.

فرمت آن به صورت مقابل است:

' يك پيام '

( متغير ) write/ln

عبارت محاسباتي

انتساب متغيرها:

مقدار ثابت

( متغير )=: متغير

عبارت محاسباتي

مثال : برنامه اي بنويسيد كه دو عدد را از ورودي دريافت و حاصلجمع آن دو را چاپ كند .

Program add;

Var

a,b:integer;

begin

writeln('enter 2 num');

readln(a,b);

c:=a+b;

writeln('result is =',c);

end.

تكليف : چرا برنامه بايد ادب داشته باشد ؟

مثال : برنامه اي بنويسيد كه حقوق پايه وتعداد فرزندان يك كارگر را از ورودي دريافت و مبلغ حقوق وي را بر اساس فرمول زير حساب كنيد.

10*تعداد فرزندان + حقوق پايه =حقوق كل

Program test;

Var

Salary:longint;

Child:byte;

kole:integer

Begin

Writeln('enter salary and number of child);

Readln(salary,child);

Kole := salary + child *10

Writeln('kole is ',kole);

END.

اولويت عملگرها:

/ *

- +

شرط:

then شرط if

Begin

____

____

____

end

else

begin

____

____

____

end;

نكته : دستورالعمل قبل از IF سمي كالن نمي گيرد

عناصر شرط:

= =

اپراتورها :

AND OR NOT XOR

NOT A

1 0

0 1

XOR OR AND B A

0 1 1 1 1

1 1 0 0 1

1 1 0 1 0

0 0 0 0 0

مثال : برنامه اي بنويسيد كه با دريافت دو عدد بزرگترين آنها را چاپ كند.

Program test;

Var

a,b:integer;

if a>b then

begin

writeln(a);

end

else

writeln(b);

end.

مثال : برنامه اي بنويسيد كه با دريافت سه عدد به عنوان ضرايب y=ax2+bx+c معادله درجه دو را حل كند(اين برنامه را با يك If بنويسيد).

Var

A,b,c:integer;

D,x1,x2:real;

Begin

Writeln('enter a,b,c');

Readln(a,b,c);

D:=b*b-4*a*c;

If (d >=0 ) then

Begin

X1:=(-b+sqrt(d))/2*a);

X1:=(-b-sqrt(d))/2*a);

مثال : برنامه اي بنويسيد كه تعداد فرزندان وحقوق پايه و رتبه يك كارگر را از ورودي دريافت و حقوق كل وي را بر اساس فرمول زير حساب كند.

كسريها - مزايا +بيمه = حقوق كل

5*رتبه +1000* تعداد فرزند = مزايا

ماليات + بيمه = كسريها

بيشتر كمتر يا مساوي 2 تعداد فرزند

تعداد فرزندان 1000 بيمه

هر چيزي ديگر 20 تا 0 رتبه

حقوق پايه حقوق پايه*100/10 ماليات

begin

writeln('enter salary and grade and number of child');

readln(salary ,num,grade);

if num

bimeh:=100

else

bimeh :=num*500;

if (grade>=0) and (grade

net := 10/100*salary

else

if grade >20 then

begin

net:=20/100*salary;

mazaya:=num*1000+grade*50;

kasry:=bimeh+net;

kol :=salary + mazaya-kasry;

end;

writeln(kol);

end.

تكليف : در يك تركيب شيميايي 4 عنصر شركت دارند مقدار مجاز براي تهيه ماده اي به نام asxd به اين صورت است.

A 0 ~ 50

S 0.5 ~ 0.83

X 81 ~ 92 or 824 ~ 901

D -100 ~ 100

با دريافت مقادير a,s,x,d از ورودي به ما بگويد كه آيا مي توان اين ماده را توليد كرد يا نه ؟

Begin

Num:=0;

Writeln('please enter a s x d');

Readln(a,s,x,d);

If (a>0) and(a

Num:=num+1;

If (s>0.5)and (s

Num:=num+1;

If ((x>81)and(x824)and(x

Num:=num+1;

If (d>-100) and (d

Num:=num+1;

If num=4 then

Writeln('yes can')

Else

Writeln('you can not');

End.

تكليف : برنامه اي بنويسيد كه با دريافت سه عدد و با فرض اينكه عدد دوم وتر ميباشد به ما بگوييد كه آيا اين سه عدد تشكيل يك مثلث قايم الزاويه مي دهد يا خير؟

CASE:

CASE ميتواند تعداداي شرط را بگيرد و انتخاب كند.

مقاديري كه دستور CASE ميپذيرد ORDINAL است مقاديري كهORDINAL هستند داراي تركيب نيستند و همچنين قابل شمارش هم هستند مثل INTEGER,CHARACTER,BYTE,BOOLEAN,LONGINT,…

پسREAL,STRING ORDINAL

CASE تنها دستوري است كه BEGIN ندارد ولي END دارد

مقدارها ميتوانند شامل يك مقدار يا چند مقدار كه از يكديگر با كاما جدا شده اند باشند و يا يگ سري شمارشي باشند مثل:

1:------

1,10,28:------

1..100,150..243:---------

'A'..'Z':---------

Of متغير Case

Begin : مقدار1

-------

-------

End;

Begin : مقدار2

-------

-------

End;

Begin :Else

-------

-------

End;

End.

مثال : برنامه اي بنويسيد كه يك عدد را از ورودي دريافت ( (0

BEGIN

READLN(X);

CASE X OF

0:WRITELN('ZERO');

1:WRITELN('ONE');

2:WRITELN('TWO')

ELSE

WRITELN('ERROR');

END;

END.

مثال : برنامه اي بنويسيد كه دو عدد را از ورودي دريافت و چنانچه عدد اول در بازه 0 تا 5 بود توان دوم عدد دوم را چاپ كند چنانچه 68 بود حاصلضرب دو عدد را چاپ كند و در غير اينصورت مقادير مجاز را چاپ كند.

BEGIN

WRITELN('ENTER TWO NUMBER');

READLN(A,B);

CASE A OF

0..5 :WRITELN(B*B);

68:WRITELN(A*B)

ELSE

WRITELN('ENTER 0..5 OR 68');

END;

END.

- معادل برنامه بالا با دستور If :

Begin

Writeln('enter 2 number');

Readln(a,b);

If (a>=0)and(a

Writeln(b*b)

Else

If a=68 then

Writeln(a*b)

Else

Writeln('enter 0..5 or68');

End.

تكليف : روشي براي تلفظ اعداد پيدا كنيد.

حلقه تكرار :

1- تعداد معين

2- تعداد معين

Do مقدار نهايي to { مقدار شروع=: متغير for

downto

begin

___

___

___

end;

توجه مهم : در برخي از حلقه ها دستورات داخل حلقه به متغير حلقه مرتبط مي باشند و در برخي موارد هيچگونه ارتباطي وجود ندارد.

حلقه for براي تعداد تكرار معين به كار ميرود

Downto : در مواردي به كار ميرود كه مقدار اوليه از مقدار نهايي بيشتر باشد

مثال : برنامه اي بنويسيد كه توان دوم اعداد 100 تا 200 را چاپ كند.

Begin

For i:=100 to 200 do

Begin

Writeln(i*i);

End;

End.

نكته : اجازه نداريد مقدار متغير حلقه را در داخل بدنه عوض كنيد .

مثال : برنامه اي بنويسيد كه حاصلجمع اعداد 100..1 را چاپ كند.

Begin

Sum:=0;

For i:=1 to 10 do

Begin

Sum:=sum+i

End;

Write(sum);

End.

مثال : برنامه اي بنويسيد كه حاصلجمع مضارب 5 بين 0 تا 100را به دست آورد.

Begin

Sum:=0;

For I:=1 to 20 do

Begin

Sum:=sum+i*5;

End;

Writeln(sum);

End.

مثال : برنامه اي بنويسيد كه دو عدد را از ورودي دريافت و اعداد ما بين اين دو عدد را چاپ كند (aBegin

Writeln('enter a,b');

Readln(a,b);

For I:= a to b do

Writeln(i);

End.

مثال : برنامه اي بنويسيد كه با يك حلقه for اعداد بين100..1 و738..353و 950..940 را چاپ كند

Begin

For i:=1 to 950 do

Begin

If ( i>=1) and (i

Writeln(i);

If (i>353) and (i

Writeln(i);

If (i>=940) and (i

Writeln(i);

End;

End.

معادل برنامه بالا با استفاده از دستور case :

Begin

For i:=1 to 950 do

Case I of

1..100,353..738,940..950: writeln(i);

end;

end.

باقيمانده mod

مثال :

X mod y

مثال : برنامه اي بنويسيد كه مضارب 7 بين 1 تا 100 را چاپ كند

Begin

For i:= 1 to 100 do

Begin

If I mod 7 = 0 then

Writeln(i);

End;

End.

مثال : برنامه اي بنويسيد كه تعداد مضارب 5و7 را در بازه 231~846 چاپ كند.

Begin

K:=0;

C:=0;

For i:=846 downto 231 do

Begin

If I mod 5 = 0 then

C:=c+1;

If I mod 7 = 0 then

K:=k+1;

End;

Writeln('5=',c,'7=',k);

End;

End.

مثال : برنامه اي بنويسيد كه حقوق پايه وتعداد فرزندان 100 كارگر را از ورودي دريافت و مبلغ حقوق آنها را بر اساس فرمول زير حساب كند0

1000*تعداد فرزند + حقوق پايه = حقوق كل

Begin

For i:=1 to 100 do

Begin

Writeln('enter salary and number of children');

readln(salary,num);

kol := salary + num * 1000;

writeln(kol);

end;

end.

مثال : برنامه اي بنويسيد كه 100 عدد را از ورودي دريافت و ميانگين و حاصلجمع آنها را به ما بدهد.

Begin

Sum:=0;

For i:= 1 to 100 do

Begin

Writeln('enter num');

Readln(num);

Sum:=sum+num;

End;

Ave:=ave/100;

Writeln(sum,ave);

End.

تعداد تكرار نامعين :

Do شرط while

begin

___

___

___

end;

مثال : برنامه اي بنويسيد كه اعداد 100..1 را چاپ كند

Begin

I:=1;

While i

Begin

Write(i);

I:=i+1;

End;

مثال : برنامه اي بنويسيد كه تعدادي اسم را از ورودي دريافت و به ما بگويد چند بار اسم ali تكرار شده است(آخرين اسم end است).

Var

S:integer;

St:string;

Begin

Read(st);

While st 'end' do

Begin

If st='ali' then

S:=s+1;

Read(st);

End;write(s);

End.

  • Like 1
لینک به دیدگاه

مثال : برنامه اي بنويسيد كه تعدادي عدد كه آخرين آنها صفر است را از ورودي دريافت و حاصلجمع آنها را چاپ كند.

Begin

Readln(num);

T:=1;

While num0 do

Begin

Sum:=sum+num;

Readln(num);

T:=t+1;

End;

Writeln('s=',s,'average',s/t);

End;

تكليف : براي دانش آموزان يك كلاس برنامه اي بنويسيد كه نام آنها به همراه تعداد نمرات و سپس نمرات آنها را به فرم زير از ورودي دريافت كند.تعداد دانش آموزان كلاس نامعين است ولي آخرين نفر نامش end است .برنامه ميبايستي پس از دريافت هر يك از اطلاعات پيامي به شكل زير چاپ كند.

Average: Sum: Ali Name:

3

18

20

13.5

program test;

var

name:string[10];

ave,sum,nomreh:real;

num,i:integer;

begin

writeln('enter name ' );

readln(name);

while name 'end' do

begin

writeln('enter num:');

readln(num);

for i:=1 to num do

begin

writeln('enter nomreh: ');

readln(nomreh);

sum:=sum+nomreh;

end;

ave:=sum/num;

writeln('name:',name,'sum:',sum,'ave:',ave);

writeln('enter name ');

readln(name);

end;

end.

تكليف : ميخواهيم براي برنامه هاي خود يك منو تهيه كنيم اين منو شامل موارد زير است

1) load

2) save

3) edit

4) exit

please select a number :

program test;

var

num:integer;

begin

writeln(' 1) load');

writeln(' 2) save');

writeln(' 3) edit');

writeln(' 4) exit');

writeln(please select a number : ');

readln(num);

while num4 do

begin

case num of

1:writeln('loading');

2:writeln('saving');

3:writeln('editing');

end;

end;

end.

مثال : برنامه اي بنويسيد كه دو عدد را از ورودي دريافت و طبق جدول زير نسبت به مقدار آن واكنش نشان دهد

3 2 1 a

B+...+3+2+1 1..b b..1 واكنش

Begin

Writeln (' enter a,b :');

Readln(a,b);

Case a of

1:begin

for i:=1 to b do

write(i);

end;

2:begin

or I;=b downto 1 do

write(i);

end;

3:begin

sum:=0;

for i:=1 to b do

sum:=sum+I;

write(sum);

end;

end.

  • Like 1
لینک به دیدگاه

آرايه ها :

آرايه ها به عناصري اتلاق ميشود كه با يك نام تعدادي محل از حافظه را كنترل كند براي تشخيص محلها از انديس استفاده ميشود

انواع آرايه ها :

1- آرايه هاي يك بعدي

2- عناصر دو بعدي

3- آرايه هاي سه بعدي

تعريف آرايه ها :

var

نوع of ]انديس پايان..انديس شروع: array [ نام آرايه

نوع متغير آرايه : متغير آرايه

خواندن آرايه :

مثال : برنامه اي بنويسيد كه نمرات 100 دانش آموز را از ورودي دريافت و در يك آرايه بريزد.

Var

A:array[1..100] of real;

Begin

For i:=1 to 100 do

Readln(a[i ]); [/size]

مثال : برنامه اي بنويسيد كه نمرات 100 دانش آموز را از ورودي دريافت و 50 تاي اول را چاپ كند سپس تعداد نمرات 20 را مشخص كند.

Var

A:array[1..100] of real;

Begin

For I;=1 to 100 do

Writeln('enter no(',I,')');

Readln(a[ i]);

For i:=1 to 50 do

Writeln(a [ i]);

S:=0;

For i:=1 to 100 do

If i:=1 to 100 do

If a[ i]=20 then

S:=s+1;

Writeln(s);

End.

پيدا كردن max,min

عنصر اول =min

حلقه براي گردش در آرايه

Min

عنصر فعلي min :=

Write(min);

مثال : برنامه اي بنويسيد كه با دريافت نمرات 100 دانش آموز بالاترين و پايين ترين نمره را در بين اين 100 نفر پيدا كند.

Var

A:array[1..100] of real;

I:integer;

Begin

For i:=1 to 100 do

Readln(a[ i ] );

Min:=a[1];

Max:=a[1];

For i:=2 to 100 do

Begin

If a[1]

Min:=a[ i];

If a[ i]>max then

Max := a[i ];

End;

Writeln('max is :',max,'min is :',min);

End.

مثال : برنامه اي بنويسيد كه با دريافت 100 اسم به ما بگويد تعداد تكرار اسم ali چند بار است وآيا اسم hassan بيشتر ذكر شده يا اسم reza ؟

Var

A:array [1..100] of string;

Begin

For i:=1 to 100 do

Readln(a[ i ]);

Ali:=0;

Reza:=0;

Hassan:=0;

For i:=1 to 100 do

Begin

If a[ i]='ali' then

Ali:=ali+1;

If a[ i]='reza' then

Reza:=reza+1;

If a[ i]='hassan' then

Hassan:=hassan+1;

Endd

Writeln(ali is :',ali);

If reza>hassan then

Writeln('reza')

Else

Writeln('hassan');

End.

مثال : برنامه اي بنويسيد كه با دريافت نام و نمره 100 دانش آموز تنبل ترين فرد كلاس را مشخص كند.

Var

Name:array[1..100] of string;

No:array[1..100] of real;

Begin

For i:=1 to 100 do

Begin

Readln(name[ i]);

Readln(no[ i]);

End;

Min:=no[1];

Namemin:=name[1];

For i:=2 to 100 do begin

If no[ i]

Begin

Min:=no[ i];

Namemin:=name[ i];

Writeln(namemin);

End.

آرايه هاي دو بعدي:

وقتي از آرايه دوبعدي استفاده ميكنيم بايد از دو حقه for استفاده كنيم.

مثال : برنامه اي بنويسيد كه نمرات 4 كلاس كه هر يك 20 دانش آموز دارد را از ورودي دريافت وتنبل ترين فرد را در اين 4 كلاس مشخص كند.

Var

A:array[1..20,1..4] of real;

Begin

For i:=1 to 4 do

Begin

For j:=1 to 20 do

Readln(a[j, i]);

End;

Min:=a[1,1];

For i:=1 to 4 do

For j:=1 to 20 do

If a[j,i]

Min:=a[j,i];

Writeln(min);

End.

مثال : در يك آرايه 100*20دوهزار كاراكتر نگهداري ميشود برنامه اي بنويسيد كه تعداد تكرار حرف A را با a مقايسه كند و همچنين به ما بگويد آيا كاراكتر z در اين ماتريس وجود دارد ؟

Var

A:array[1..20,1..100] of character;

Bool:Boolean;

B,b1:integer;

Begin

For i:=1 to 100 do

For j:=1 to 20 do

If a[i,j]='A' then

B:=b+1;

If a[i,j]='a' then

B1:=b1+1;

If a[i,j]='z' then

Bool:=true;

End;

If b>b1 then writeln('A>a');

If bIf b=b1 then writeln('A=a');

If true then writeln('''z''exist');

End.

تكليف : ميخواهيم نام و نمره تعدادي دانش آموز يك كلاس را از ورودي دريافت كنيم و مشخص كنيم كه تنبل ترين و زرنگ ترين فرد كلاس كيست.چند نفر نمره زير 10 گرفتند؟نام كساني كه نمره آنها در بازه 17 تا 15 مي باشد ب همراه نمره آنها چاپ شود آخرين نفر نامش end است حداكثر تعداد دانش آموزان 100 نفر است.

Var

a:array [1..100] of string ;

b:array[1..100] of real;

begin

i:=1;

read(a[ i]);

while a[ i]'end' do begin

readln(b[ i]);

i:=i+1;

readln(a[ i]);

end;

j:=i-1;

min:=a[1];

max:=a[1];

for i:= 2 to j do

begin

if b[ i] >max then

begin

max:=b[ i];

name:a[ i];

end;

end

writeln(name);

count:=0;

for i:=1 to j do

if b[i ]

count:=count+1;

writeln(count);

for i:=1 to j do

if (b[ i]15) then

write(b[ i],a[ i]);

end.

تكليف : برنامه اي بنويسيد كه حاصل اين عبارت را حساب كند.

i/i!=1/1!+2/2!+3/3!+4/4!+5/5!

N!= 1*2*3*4*…*n

Begin

Sum:=0;

For n:=1 to 5 do

Begin

For m:=1 to n do

F:=f*m;

Sum:=sum+n/f;

End;

Writeln(sum);

End.

تكليف : برنامه اي بنويسيد كه نمرات 80 دانش آموز را كه در چهار كلاس دسته بنده شده اند را از ورودي دريافت كند سپس به سوالات زير جواب دهد.

1- معدل هر يك از كلاسها

2- نمره تنبل ترين و زرنگترين شخص در هر كلاس به طور جداگانه

Var

A:array [1..4,1..20] of real;

Begin

For i:=1 to 4 do

For j:=1 to 20 do

Begin

Writeln('please enter nomreh');

Readln(a[i,j]);

End;

For i:=1 to 4 do

Begin

Sum:=0 ;

For j:=1 to 20 do

Begin

Sum:=a[i,j]+sum;

End;

Writeln(sum/20,'average of this class');

End;

For i:=1 to 4 do

Begin

Max :=a[1,1];

Min:=a[1,1];

For j:=2 to 20 do

Begin

If a[i,j]>max then

Max :=a[i,j];

End;

Writeln(I,min,max);

End;

End.

  • Like 1
لینک به دیدگاه

- String : String آرايه اي از كاراكترهاست .اغلب لازم است كاراكترهايي در رشته موجود درج شوندو يا كاراكترهايي به جاي بخشي از رشته نوشته شوند , زيررشته اي در رشته جستجو گردد و يا دو رشته با هم الحاق شوند.

رشته تهي : طول رشته ثابت نيست و با داداه هايي كه در آن ذخيره شده است مشخص مي گردد.كاراكترهايي كه در رشته قرار مي گيرد از حداكثر طولي كه براي آن تعيين ميشود بيشتر نخواهد بود. اگر name رشته كاراكتري باشد دستور زير name را به رشته تهي تبديل ميكند:

Name:='';

تبديل رشته به اعداد :

در پاسكال زير برنامه هايي وجود دارند كه به آساني ميتوانند رشته ها را پردازش كنند. زيربرنامه val رشته عددي را گرفته به مقدار عددي تبديل ميكند.

رشته عددي رشته اي است كه حاوي كاراترهاي '0' تا '9' و نقطه مميز باشد مثل '12.5' و'13.5' زيربرنامه val به صورت زير به كار ميرود.

Val (st,number,error)

St رشته اي است كه بايد به عدد تبديل شود و number متغيري است كه رشته تبديل شده به عدد در آن قرار ميگيرد. چنانچه در رشته st كاراكتر نا معتبري (كاراكترهاي غير از( '0' تا '9' و'.' ) , محل وجود آن كاراكتر در پارامتر error قرار ميگيرد. اگر error برابر با صفر باشد معنايش اينست كه كاراكتر نا معتبري وجود ندارد. اگر number از نوع صحيح باشد st به مقدار صحيح و اگر number از نوع اعشاري باشد st به مقدار اعشاري تبديل ميشود .

مثال زير را در نظر بگيريد:

Var st :string;

Num,e:integer;

St:='352';

Val (st,num,e);

مقدار 352 در متغير num ومقدار صفر در متغير e قرار ميگيرد اكنون دستورات زير را در نظر بگيريد :

St:='35#'2;

Val (st,num,e);

با اجراي دستور val به دليل وجود كاراكتر' # ' كه كاراكتر نامعتبري در اعداد است عدد 2 در متغير e قرار ميگيرد و معنايش اينست كه كاراكتر شماره 2 ( شماره گذاري از صفر شروع ميشود) نامعتبر است و عمل تبديل صورت نميگيرد و مقدار num تعريف نشده است.

تبديل عدد به رشته :

براي تبديل مقدار عددي به رشته عددي از زيربرنامهstr استفادهميشود و به صورت زير به كار ميرود:

Str (number : format,numstring)

با اين دستور مقداري كه در number قرار دارد به رشته اي به طول format تبديل ميشود و در رشته numstring قرار ميگيرد . دستورات زير را در نظر بگيريد:

Var x:integer;

St:string;

X=352;

Str(x:5,st);

با اجراي اين دستور مقدار 352 به رشته '352' تبديل شده در st قرار ميگيرد

دستورات زير را در نظر بگيريد:

Var y1,y2:real;

St1,st2 : string;

Y1:=352.768

Y2:=476.395

Str(y1:7:2,st1);

Str(y2:3:1,st2);

با اجراي دستور str اول مقدار 352.768 به رشته '352.768' تبديل ميشود و در st1 قرار ميگيرد و با اجراي دستورstr دوم مقدار 476.395 به رشته '476.395'تبديل ميشود و در st2 قرار ميگيرد.

جدا كردن زيررشته اي از رشته:

زيررشته بخشي از رشته است و براي جدا كردن زيررشته از رشته از تابع copy استفاده ميشودتابع copy به صورت زير به كار ميرود.

Copy (source,index,size)

S:='I am learning pascal ';

S1:=copy(s,15,6);

دستور copy باعث ميگردد تا با شروع از محل 15 تعداد 6 كاراكتر از رشته s استخراج شود و در s1 قرار گيرد. بنابراين محتويات رشته s1 برابر است با 'pascal'.

الحاق رشته ها :

منظور از الحاق رشته ها اتصال رشته ها به يكديگر است به عنوان مثال اگرs1:='ab' و s2:='cde' الحاق دو رشته (s1,s2) به صورت 'abcde' خواهد بود براي الحاق رشته ها از تابع concat استفاده ميشود:

(اسامي رشته ها)concat

دستورات زير را در نظر بگيريد:

S1:='pascal';

S2:='is a ;

S3:='language';

S4:=concat(s1,s2,s3);

با اجراي اين دستور s3 به انتهاي s2 متصل ميشود و رشته نتيجه به انتهاي s1 متصل ميگردد و در نتيجه رشته s4 عبارت است از'pascal is a language': . اگر طول رشته حاصل بيش از 255 باشد بقيه كاراكترها حذف ميشوند.

جستجوي رشته اي در رشته ديگر:

براي اين كار از تابع pos استفاده ميشود كاربرذ اين تابع به صورت زير است:

Pos(s1,s2)

S1 رشته اي است كه بايد در s2 وجود داشته باشد محل اولين وقوع آن برگردانده ميشود و گر نه مقدار صفر برگردانده ميشود دستورات زير را در نظر بگيريد:

S1:='learning'

S2:='I am learning pascal';

S3:='english'

X:=pos(s1,s2)

y:=pos(s3,s2)

چون رشته s1 در s2 وجود دارد دستور pos اول مقدار 6 را در x قرار ميدهد و معنايش اين است كه رشته 'learning' در محل 6 رشته s2 وجود ندارد مقدار صفر در y قرار ميگيرد.

محاسبه طول رشته :

براي محاسبه طول رشته از تابع length به صورت زير استفاده ميشود:

(رشته)length

دستورات زير را در نظر بگيريد:

S1:='xymn'

X:=length(s1)

چون طول رشته s1 برابر 4 است مقدار x برابر 4 خواهد بود.

حذف و درج زيررشته:

زير رشته اي را ميتوان از رشته اي حذف كرد و يا زيررشته اي را ميتوان در رشته اي درج كرد براي حذف زير رشته از زيربرنامه ها به صورت زير به كار ميروند:

Delete(source,index,size)

Insert(pattern,destination,index)

در زيربرنامه delete زيررشته اي به طول size با شروع از محل index از رشته source حذف ميشود و در زيربرنامه insert زيررشته pattern با شروع از محل index در رشته destination درج ميشوددستورات زير را در نظر بگيريد:

S1:=pas***cal

Delete(s1,4,3)

S2:='paal';

S3:='sc';

Insert(s3,s2,);

دستور delete باعث ميشود تا با شروع از محل 4 رشته s1 حذف شده و رشته s1 به pascalتبديل شود دستور insert موجب ميشود تا رشته s3 در s2 درج شود و در نتيجه رشته s2 به 'pascal' تبديل شود.

مثال : برنامه اي بنويسيد كه يك اسم را از ورودي دريافت و آنرا بر عكس چاپ كند

Readln(name);

For i:=length(name) downto 1 do

Write (name[ i])

مثال : برنامه اي بنويسيد كه كه يك نام را از ورودي دريافت و به ما بگويد كه آيا اين نام با حرف a شروع ميشود يا خير؟

Readln(name);

If name[1]='a' then

Writeln('ok')

Else

Writeln('not ok');

مثال : برنامه اي بنويسيد كه يك نام را از ورودي دريافت و حروف آنرا يك در ميان چاپ كند.

Readln(name);

For i:=1 to length(name) do

If I mod 2 = 0 then

Writeln(name[ i]);

روش ديگر:''

For i:=1 to int(length(name)/2) do

Writeln(name[ i*2]);

مثال : برنامه اي بنويسيد كه يك رشته را از ورودي دريافت و متقارن بودن آنرا چك كند.

1 2 3 4 5 5 4 3 2 1

var

N:string;

Begin

Readln(n);

For i:=1 to int(length(n)/2) do

Begin

If n[i ] n[length(n) -i+1] then

K:=0;

End;

If k=1 then

Writeln ('ok')

Else

Writeln('no');

End.

مثال : برنامه اي بنويسيد كه تعداد حروف a موجود در يك رشته ورودي را بشمارد.

Var st:string;

Begin

Readln(st);

C:=0;

For i:=1 to length(st) do

If st[ i]='a' then ?if st[ i] in ['a','A'] then

C:=c+1;

Writeln©

مثال : برنامه اي بنويسيد كه تعداد اسامي alireza موجود در رشته را بشمارد.

Begin

Readln(st);

C:=0;

While pos('alireza',st) 0 do

Begin

C:=c+1;

J:=pos('alireza',st);

Delete(st,pos('ali',st),3);

End;

Write ( c );

End.

مثال : برنامه اي بنويسيد كه دو رشته را از ورودي دريافت و بعد از كاراكترمساوي كه در رشته اول وجود دارد رشته دوم را چاپ كند.

Readln(st,st1);

J:=pos('=',st);

Writeln(copy ((st,1 j) , st1, copy (st,j+1,100));

تكليف : برنامه اي بنويسيد كه با دريافت سه حرف و قرار دادن آنها در يك آرايه سه تايي كليه تركيبات ممكن را كه سه حرف تركيباتشان به هم نخورد چاپ كند.

W a x

A x w

W a x

مثال : برنامه اي بنويسيد كه يك رشته را از ورودي دريافت و كليه كلمات موجود در آن را بشمارد.

Readln(st);

S:=0;

St:=st+' '

While pos(' ',st) 0 do

Begin

S;=s+1;

Delete(st,1,pos(' ',st));

While st[1]=' 'do

Delet (st,1,1);

End;

End.

تكليف : برنامه اي بنويسيد كه 100 رسته را از ورودي دريافت و در يك آرايه به طول 100 از نوع string بريزيد و به سؤالات زير جواب دهد.

1- تعداد كل كلمات

1- تعداد كل حروف

2- تعداد حروف صدا دار

ذخيره اطلاعات :

Log file : فايلي است كه تمام تغييرات مربوط به يك محيط را ثبت ميكند

فايلها :

1- متني text

2- ركوردي typed

3-بدون نوع

4-untyped

معرفي فايلهاي متني :

Var

Text : نام فايل

نسبت دادن فايل :

; ('نام خارجي ,'نام فايل ) assign

مثال :

Assign(f,'c:\a1.dat.ddd');

باز كردن جهت خواندن

;( نام فايل)reset

باز كردن جهت نوشتن

; ( نام فايل)rewrite

) ___,نام فايل)readln

) ___,نام فايل)writeln

) نام فايل)close

تا close انجام نشود data ذخيره نميشود .

نكته بسيار مهم : در هر يك از مسائلي كه در مورد فايلها مطرح ميشود مي بايستي به نحوي از يكي از تكنيكهاي نگهداري اطلاعات در حافظه اصلي استفاده نمود اين تكنيكها ممكن است استفاده از متغيرها و آرايه ها و ماتريسها و ودرختهاو...استفاده نمود ولي تنها با دو عمل خواندن و نوشتن به روي فايل كار انجام ميشود

Update : ميخوانيم ولي دوباره ميريزيم سر جاش

Append : بهش يك چيزي اضافه ميكنيم

نكته : عمل rewrite باعث ميگردد چنانچه فايل وجود نداشته باشد ايجاد و چنانچه وجود دارد اطلاعاتش به طور كامل پاك شود.

مثال : برنامه اي بنويسيد كه100 اسم را از ورودي دريافت و آنها را در يك فايل به نام a1.dat))بنويسد.

Var

F:text;a:string;

Begin

Assign(f,'a1.dat');

Rewrite(f);

For i:=1 to 100 do

Readln(a);

Writeln(f,a);

End;

Close(f);

End.

مثال : برنامه اي بنويسيد كه فايل a1.dat را خوانده و به ما بگويد چند بار اسم ali تكرار شده است؟

Var

A:text;

B:string;

Begin

Assign(a,'a1.dat');

Reset(a);

Sum:=0;

For i:=1 to 00 do

Begin

Readln(a,b);

If b='ali' then

Sum:=sum+1;

End;

Close(a,b);

End;

مثال : برنامه اي بنويسيد كه تعدادي اسم را كه آخرين آنها end است از ورودي دريافت و در يك فايل به نام aa.dat بريزد آنگاه فايل را بسته و قسمتهاي زير را به طور جداگانه انجام دهد.

1- تعداد حسنها بيستر است يا علي ها

2- چند اسم وجود دارد كه با حرف z شروع ميشود.

Var

f:text;

Name:string;

Begin

Assign(f,'aa.dat');

Rewrite(f);

Readln(name);

While name 'end' do

Begin

Writeln(f,name);

Readln(name);

End;

Close(f);

H:=1;

A:=1;

Z:=1;

Reset(f);

While not eof (f) do

Begin

Readln(f,name);

If name='ali' then

A:=a+1;

If name ='hassan' then

H:=h+1;

End;

Close(a);

If h>a then writeln('h>a');

If h If h=a then writeln('h=a');

End;

Close(f);

Reset(f);

While not eof (f) do

Begin

Readln(f,name);

If name[ i]='z' then

Z;=z+1;

End;

Close(f);

Writeln('sum of z is :'z);

End.

تكليف : برنامه اي بنويسيد كه تعدادي نام را از ورودي دريافت و در يك فايل بريزد سپس فايل تشكيل شده را باز كرده و از روي اين فايل دو فايل ديگر تشكيل دهيد كه در يكي از آنها اسامي كه بين a تا z قرار گرفته اند ريخته و در فايل دوم كليه اسامي كه از v تا z هستند را بريزد.

Program test;

Var

Name : string;

F,f1,f2:text;

Begin

Assign(f,'a.dat');

Rewrite(f);

Writeln('enter a name ');

Readln(name);

While length(name)>0 do

Begin

Writeln(f,name);

Writeln('enter a name');

Readln(name);

End;

Close(f);

Reset(f);

Assign(f1,'a1.dat');

Assign(f2,'a2.dat');

Rewrite(f1);

Rewrite(f2);

While not eof (f) do

begin

Readln(f,name);

Case name[1] of

'a'..'u':writeln(f1,name);

'v'..'z':writeln(f2,name);

end;

end;

close(f2);

close(f1);

close(f);

end.

تكليف : برنامه اي بنويسيد كه نام دو فايل را از ورودي دريافت و از اطلاعات داخل اين دو فايل فايل سومي تشكيل دهد كه حاصل تركيب دو فايل قبل باشد.

var

h,f,g:text;

a:string;

begin

writeln('enter first filename') ;

readln(a);

assign(h,a);

writeln('enter second filename') ;

readln(a);

assign(f,a);

reset(h);

reset(f);

assign(g,'out.dat');

rewrite(g);

while not eof(h) do

begin

readln(h,a);

writeln(g,a);

end;

while not eof(f) do

begin

readln(f,a);

writeln(g,a);

end;

close(f);

close(h);

close(g);

End.

  • Like 1
لینک به دیدگاه

سلام دوستان:icon_gol:

اینم یه فایل در مورد اندازه گیرهای (ترانسمیتر) ولتاژ که کاربرد وسیعی در صنعت برق دارن

موفق باشید

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

لینک به دیدگاه

سلام دوستان عزیز icon_gol.gif

اینم کتاب طراحی شیرهای فشار

کتاب جالب وجامعی هست

امیدوارم به دردتون بخوره

موفق باشید

دوستان هر نظر وپیشنهادی دارن مطرح کنن

ممنون

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

لینک به دیدگاه

سلام دوستان icon_gol.gif

کتاب مرجع بهره برداری از بویلر

بویلر یا دیگ در نیروگاههای بخاری مهمترین وسنگین ترین وظیفه رو برعهده دارن

وبهره برداری از این قسمت کار مشکلتری نسبت به بقیه هست

حتما بخونید

کتاب جامع وجالبی هست

موفق باشید

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

لینک به دیدگاه

سلام دوستان عزیز

اینم کتابی درزمینه محاسبات پمپ توربین و...

کتاب جالبیه

موفق باشید

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • Like 1
لینک به دیدگاه

دانلود کتاب ترمودینامیک انریکو فرمی

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

Title: Thermodynamics

Author: Enrico Fermi

Publisher: Dover Publications

Publication Date: 1956-06-01

Number Of Pages: 160

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

لینک به دیدگاه

انالیز سیستمهای قدرت هیدرولیکی

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

Title: Hydraulic Power System Analysis (Fluid Power and Control)

Author: Arthur Akers Max P. Gassman Richard Smith

Publisher: CRC

Publication Date: 2006-04-17

Number Of Pages: 400

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • Like 1
لینک به دیدگاه

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

Title: Handbook of Hydraulic Fluid Technology

(Mechanical Engineering (Marcell Dekker))

Author: Totten

Publisher: CRC

Publication Date: 1999-10-15

Number Of Pages: 1272

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

  • Like 1
لینک به دیدگاه

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

Title: Principles of Hydraulic System Design

Author: Peter J. Chapple

Publisher: Coxmoor Publishing Co.

Publication Date: 2002-12

Number Of Pages: 248

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • Like 3
لینک به دیدگاه

سلام دوستان عزیز

banel_smiley_58.gif

با توجه به ارتیاط تنگاتنگ مقوله انرژی با تولید نیروbanel_smiley_19.gif

کتاب مرجع انرژی رو براتون میزارم

اخرین ویرایش اون

موفق باشید

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

  • Like 1
لینک به دیدگاه
مهمان
این موضوع برای عدم ارسال قفل گردیده است.

×
×
  • اضافه کردن...