1 / 44

بسم الله الرحمن الرحيم

بسم الله الرحمن الرحيم. نام درس : برنامه نویسی رایانه – مکانیک تعداد واحد : 2 نوع واحد : عملی – نظری پیشنیاز : هدف : سرفصل دروس ( 16 ساعت نظری + 64 ساعت عملی) 80 ساعت مقدمه و تاریخچه مختصر کامپیوتر ( 1 تا 2 ساعت ) اجزاء سخت افزار ( پردازنده مرکزی – حافظه اصلی – امکانات جانبی ) (2تا 3 ساعت)

juro
Télécharger la présentation

بسم الله الرحمن الرحيم

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. بسم الله الرحمن الرحيم

  2. نام درس : برنامه نویسی رایانه – مکانیک • تعداد واحد : 2 • نوع واحد : عملی – نظری • پیشنیاز : • هدف : • سرفصل دروس ( 16 ساعت نظری + 64 ساعت عملی) 80 ساعت • مقدمه و تاریخچه مختصر کامپیوتر ( 1 تا 2 ساعت ) • اجزاء سخت افزار ( پردازنده مرکزی – حافظه اصلی – امکانات جانبی ) (2تا 3 ساعت) • زبان و انواع آن ( زبان ماشین ، اسمبلی و زبانهای سطح بالا ) ( 2 تا 3 ساعت ) • تعریف نرم افزار و انواع آن ( سیستم عامل و انواع آن ، برنامه های مترجم ، برنامه های کاربردی) (1 تا 2 ساعت) • مراحل حل مسئله : تعریف مسئله ، تحلیل مسئله ، تجزیه مسئله به مسائل کوچکتر و تعیین ارتباط آنها (1 ساعت) • الگوریتم : تعریف الگوریتم، عمومیت دادن راه حل و طراحی الگوریتم، بیان الگوریتم به کمک روند نما، بیان الگوریتم به کمک شبه کد، دنبال کردن الگوریتم، مفهوم زیر الگوریتم (4 تا 6 ساعت) • برنامه و حل مسائل : تعریف برنامه، ساختار کلی برنامه، ساختمانهای اساسی برنامه سازی شامل : • الف) ساخت های منطقی (ترتیب و توالی، تکرار، شرط ها و تصمیم گیری، مفهوم بازگشتی) • ب ) ساخت های داده یی ( گونه های داده یی ساده : صحیح، اعشاری، بولین، نویسه ای یا کاراکتری – گونه های داده یی مرکب : آرایه، رکورد، مجموعه ) • ج ) زیر روال ها ( نحوه انتقال پارامترها ) • د ) آشنایی با مفهوم فایل، فایل پردازی و عملیات ورودی/خروجی • مفاهیم فوق می بایستی به یکی از سه زبان پاسکال، فرترن 77 یا بالاتر، و یا زبان C بیان شوند. • نام درس : برنامه نویسی رایانه ای – کنترل و ابزار دقیق • تعداد واحد : 2 • نوع واحد : عملی – نظری • پیشنیاز : • هدف : دانشجو پس از گذراندن این واحد درسی قادر خواهد بود یک مسئله ریاضی یا فنی را ابتدا تجزیه و تحلیل نموده و سپس الگوریتم حل مسئله را نوشته و آنگاه برنامه را به زبان C نوشته و برای محاسبات، آن را وارد کامپیوتر نماید. • سرفصل دروس : 17 ساعت نظری – 51 ساعت عملی • مقدمه و تاریخچه مختصر کامپیوتر • اجزاء سخت افزار ( پردازنده مرکزی – حافظه اصلی – امکانات جانبی ) (2تا 3 ساعت) • زبان و انواع آن ( زبان ماشین ، اسمبلی و زبانهای سطح بالا ) • تعریف نرم افزار و انواع آن ( سیستم عامل و انواع آن ، برنامه های مترجم ، برنامه های کاربردی) (1 تا 2 ساعت) • مراحل حل مسئله : تعریف مسئله ، تحلیل مسئله ، تجزیه مسئله به مسائل کوچکتر و تعیین ارتباط آنها (1 ساعت) • الگوریتم : تعریف الگوریتم، عمومیت دادن راه حل و طراحی الگوریتم، بیان الگوریتم به کمک روند نما، بیان الگوریتم به کمک شبه کد، دنبال کردن الگوریتم، مفهوم زیر الگوریتم (4 تا 6 ساعت) • برنامه و حل مسائل : تعریف برنامه، ساختار کلی برنامه، ساختمانهای اساسی برنامه سازی شامل : • الف) ساخت های منطقی (ترتیب و توالی، تکرار، شرط ها و تصمیم گیری، مفهوم بازگشتی) • ب ) ساخت های داده یی ( گونه های داده یی ساده : صحیح، اعشاری، بولین، نویسه ای یا کاراکتری – گونه های داده یی مرکب : آرایه، رکورد، مجموعه ) • ج ) زیر روال ها ( نحوه انتقال پارامترها ) • د ) آشنایی با مفهوم فایل، فایل پردازی و عملیات ورودی/خروجی • مفاهیم فوق می بایستی به زبان C بیان شوند.

  3. معرفي سرفصلها ومنابع : مقدمه - شناسه ها - داده ها - ثابتها - عملگرها - برخي توابع كتابخانه اي - دستورات ورودي و خروجي - دستورات حلقه و شرط - توابع و پارامترها و توابع بازگشتي - آرايه ها - اشكال زدائي برنامه و آزمايش آن - ساختارها ( ركورد ) - فايلها - -پورت ها منابع : 1- مرجع C#2008 – مولف : Christian Nagel, … ترجمه : احمد پهلوان و ... 2- Professional C# 2008.pdf 3 نمره کلاسی (به ازای هر غیبت 0/5 نمره کسر) 5 نمره تئوری پایان ترم (الگوریتم و فلو چارت) 12 نمره عملی پایان ترم

  4. C# اصطلاحاً Case Sensitive است . شناسه : < Letter | _ > < Letter | Digit | _ > . . . < Letter | Digit | _ > int i , j=12 ; float f=12.5F ; double d=12.5 ; char c = ‘m’ ; string n=“Book_2”; bool a=true; int ، 4 بایت صحیح float ، 4 بایت اعشاری عددی double، 8بایت اعشاری char ، 2 بایت داده ها الفبا عددی string bool ، 1 بایت منطقی

  5. بیشتر بدانیم eg. : short i =10 , j ; double e= 2.71828182845905 ;

  6. ثابت ها : صحيح : 12 , 0x12 , 0X12 اعشاري : 12.6 , 3e+5 , 3e5 , 3.2e-4 كاراكتر : ‘A’ و ‘9’ و ‘#’ رشته : “Computer” و “a123” و “a_1@yahoo.com” منطقی : true , false ثابتهاي نمادين ( سمبوليك ): const float pi = 3.14F ; const int id = 20 ; توضيحات( Comment ) : // یا /*…………*/

  7. عملگرها ( Operators ) : عملگرهاي محاسباتي : ( + , - , * , / , % ) 5 / 2 = 2 , 5.0 / 2 = 5 / 2.0 = 2.5 , 9.5 % 2 = 1.5, (int)9.5%2 = 1 عملگرهاي يكتائي : ( - , + + , - - , sizeof ) + + n ; // n = n + 1 ; n + + ; عملگرهاي مقايسه اي و منطقي : ( < , > , <= , >= , = = , != , && , || , ! ) عملگرهاي جايگزيني : ( = , += , -= , *= , /= , %= ) s += n ; // s = s + n ; x = y = 3 ; عملگر شرطي ( ?: ): max = ( a > b ) ? a : b; اولويت عملگرها : ( يكتائي ـــ * , / ـــ + , - ـــ مقايسه اي ـــ = = , =! ـــ && ـــ || ـــ جايگزيني(

  8. دستورات خروجيConsole.Write و Console.WriteLine : Console.Write("abc"); Console.WriteLine("def"); Console.WriteLine("abc"); Console.WriteLine("def"); int a = 5, b = 10; Console.WriteLine("Sum Of a,b is {0}", a + b); Console.WriteLine("Sum Of {0},{1} is {2}", a, b, a + b); double d = 19.76, e = 123456.344; Console.WriteLine(d.ToString("00.0")); Console.WriteLine(e.ToString("0,0.00")); Console.ReadKey();

  9. int a = 27; Console.WriteLine(a.ToString("X")); double d = 1230000; Console.WriteLine(d.ToString("E")); Console.WriteLine(d.ToString("0.000E+0")); Console.WriteLine(d.ToString("00.000E+0")); Console.WriteLine("a=\t{0}\n\ab=\t{1}", a, d); Console.ReadKey(); \a = Alarm , \b = Backspace , \n = New Line , \t = Tab

  10. دستور وروديConsole.ReadLine : string s; s=Console.ReadLine(); int i; i=Convert.ToInt32(s); Console.WriteLine(i + i); i = Int32.Parse(s); Console.WriteLine(i + i); double d = Convert.ToDouble (Console.ReadLine()); //double d = double.Parse(Console.ReadLine()); Console.WriteLine(d);

  11. توابع آماده ریاضی (کلاس Math) : برنامه نويسي واكنشي يا محاوره اي - لانه اي ( تورفتگي )

  12. دستورات : الف) ساده 1- جایگزینی : x = 2 ; y = Math.Pow ( x , 2 ) + 1 ; 2-افزايشي يا كاهشي : + + x ; x - - ; 3-فراخواني توابع يا زير برنامه ها : Console.Clear(); Console.WriteLine("Test"); ب) مركب : تعدادي دستور بين { } ) ) ج) كنترل : ( شرط و حلقه (

  13. دستورif : Syntax: if ( exp ) statement1 ; [ else statement 2 ; ] eg.1: if ( a > b ) Console.WriteLine(a); eg.2: if (a < b) Console.WriteLine(a); else Console.WriteLine(b); if (a < b) Console.WriteLine(a); else Console.WriteLine(b); eg.3: if (a < b) { int t = a; a = b; b = t; } eg.4: if (a >= 10 && a < 100) Console.WriteLine("Two Digits");

  14. مقایسه رشته ها : string str1, str2; str1 = Console.ReadLine(); str2 = Console.ReadLine(); if (str1 == str2) //if (str1.CompareTo(str2)==0) Console.WriteLine("Equal"); if (str1 != str2) //if (str1.CompareTo(str2)!=0) Console.WriteLine("Not Equal"); //if (str1 < str2) خطا if (str1.CompareTo(str2) < 0) //if (string.Compare(str1, str2) < 0) Console.WriteLine("{0} Less Than {1}", str1, str2); if (string.Compare(str1, str2, true) == 0) //Ignore Case Console.WriteLine("{0} Equal {1}", str1, str2);

  15. دستور switch : Syntax: switch ( exp ) statement (بايد صحيح يا كاراكتر باشد exp ) eg. : switch (a) { case 0: Console.WriteLine ("Zero"); break; case 1: Console.WriteLine("One"); break; case 2: case 3: Console.WriteLine("Two or Three"); break; default: Console.WriteLine("Greater Than or Equal Four "); break; }

  16. دستورات while و do ... while : Syntax: while ( exp ) statement ; do statement while ( exp ) ; eg.1: int x = 1; while (x <= 10) { Console.WriteLine(x); x++; } //while (x <= 10) Console.WriteLine(x++); eg.3: int x = 0 ; while ( x < 10 ) Console.WriteLine(++x ) ; // do Console.WriteLine(++x ) ; while ( x < 10 ) ; eg.2: int x = 1 ; do { Console.WriteLine(x); x++; } while (x <= 10);

  17. حلقه های تو در تو : int r, c; r = 1; while (r <= 10) { c = 1; while (c <= r) { Console.Write("{0} ",c); c++; } r++; Console.Write("\n"); //Console.WriteLine(); }

  18. دستور for : Syntax: for ( [exp1] ; [exp2] ; [exp3] ) statement ; eg.1: int x ; for ( x = 1 ; x <= 10 ; x ++ ) Console.WriteLine (x) ; int x = 1; for (; x <= 10; ) Console.WriteLine(x++); int x = 1; for (; ; ) { Console.WriteLine(x++); if (x > 10) break; // همه دستورات حلقه } int x = 1; for (; x <= 10; x++) Console.WriteLine(x);

  19. دستور Continue : eg.1: int s = 0, n; for (int i = 1; i <= 10; i++) { n = Convert.ToInt32(Console.ReadLine()); if (n < 0) continue; s += n; } Console.WriteLine(s); eg.2: int s = 0, i = 1, n; while (i <= 10) { n = Convert.ToInt32(Console.ReadLine()); i++; if (n < 0) continue; s += n; } Console.WriteLine(s);

  20. دستور goto : eg.1: int x = 1; L1: Console.WriteLine(x); x++; if (x <= 10) goto L1; Console.ReadKey(); Identifier

  21. آرايه ها : type[ ] Array_name ; int[ ] x = new int[3]; string[ ] s = new string[10]; double[ , ] m = new double[30, 4]; int[] m = new int[5]; for (int i = 0; i < 5; i++) m[i] = Convert.ToInt32(Console.ReadLine()); for (int i = 0; i < 5; i++) Console.WriteLine(m[i]);

  22. int [,] a = new int [2, 3]; for (int i = 0; i < 2; i++) for (int j = 0; j < 3; j++) a[i,j] = Convert.ToInt32(Console.ReadLine()); for (int i = 0; i < 2; i++) for (int j = 0; j < 3; j++) Console.WriteLine(a[i,j]); آرايه دوبعدي مرتب كردن آرايه int i, j, t; int[] m = new int[5]; for (i = 0; i < 5; i++) m[i] = Convert.ToInt32(Console.ReadLine()); for (i = 0; i < 4; i++) for (j = i + 1; j < 5; j++) if (m[i] > m[j]) { t = m[i]; m[i] = m[j]; m[j] = t; } اگر آرایه رشته ای باشد : if (string.Compare(m[i],m[j])>0)

  23. مقدار دهي اوليه آرايه ها : int[ ] a = new int[5]; //{0, 0, 0, 0, 0 } int[ ] b = new int[ ] { 1, 2, 3, 4, 5 }; //{1, 2, 3, 4, 5 } int[ ] c = { 1, 2, 3, 4, 5 }; int[ , ] m = { { 1, 2, 3 }, { 4, 5, 6 } }; int[ , ] n = { { 1, 2, 3 }, { 4, 5, 6 } };

  24. تعريفتوابع : (Define Function) يكي از مواردي كه برنامه را خواناتر و رفع اشكال آنرا آسانتر مي كند استفاده از توابع است . اصطلاحا برنامه بايستي روالي ( Modular يا Procedural ) باشد. فرم كلي تعريف يك تابع به صورت زير است . static type Function_Name(type Arg1, type Arg2, …) { Statements }

  25. static float fact ( int x) { float f=1; for ( int i=2; i<=x; i++) f*=i; return ( f ); } static int sum(int x, int y) { int s = x + y ; return ( s ); } static char first_rate ( int n ) { char ans=‘y’; for ( int i=2; i<n ; i++ ) if ( n%i = = 0 ) ans=‘n’; return ( ans ); } هر تابع حداكثر يك مقدار بازگشتي دارد. اگر نخواهيم تابع مقدار بازگشتي داشته باشد آنرا void تعريف مي كنيم . مثلاً : void main ( )

  26. توابع خود فراخوان : (Recursive) اگر بتوانيم تابعي را به طريقي با خودش مرتبط كنيم ، بهتر است و در بعضي مواقع لازم است از Recursion استفاده نمائيم . مثلا : 5! = 5 * 4! , 4! = 4 * 3! , ... , 1!=1 * 0! , 0!=1 ويا : 5 * 6 = 6 + 4 * 6 , 4 * 6 = 6 + 3 * 6 , ... , 0 * 6 = 0 ويا : 34 = 3 * 33 , 33 = 3 * 32 , ... , 31 = 3 * 30 , 30 = 1

  27. static double fact(int x) { if (x<=1) return(1); else return(x*fact(x-1)); } static long mul(int x , int y) { if (x==0) return(0); else return(y+mul(x-1,y)); } Static double pow(int x , int y) { if (y==0) return(1); else return(x*pow(x,y-1)); }

  28. نحوه ارسال پارامترها به توابع : static void test(int x) { x++; Console.WriteLine(x); } static void Main(string[ ] args) { int a = 10; test(a); Console.WriteLine(a); Console.ReadKey(); } static void test(ref int x) { x++; Console.WriteLine(x); } static void Main(string[ ] args) { int a = 10; test(ref a); Console.WriteLine(a); Console.ReadKey(); } Call By Reference Call By Value 11 10 11 11

  29. پارامتر آرايه اي توابع : اگر بخواهيم آرايه اي به عنوان پارامتر براي تابعي ارسال كنيم ، لازم است پارامتر آرايه اي داشته باشيم. مجازيم آرايه اي با هر تعداد عضو ارسال نمائيم . static float max_ar( float[ ] n ) { float m = n[0]; for (int i = 1; i < n.Length ; i++) if (n[i] > m) m = n[i]; return (m); }

  30. static void Main(string[ ] args) { float[ ] n = new float[ ] { 1, 4, 12, 3, 2 }; sort_ar(n); for (int i = 0; i < n.Length; i++) Console.WriteLine(n[i]); Console.ReadKey(); } static void sort_ar(float[ ] a) { for (int i = 1; i < a.Length; i++) for (int j = 0; j < a.Length - i; j++) if (a[j] > a[j + 1]) { float m = a[j]; a[j] = a[j + 1]; a[j + 1] = m; } }

  31. struct student { public string name; public float avg; public int id; } static void Main(string[ ] args) { student x; x.avg = 10; Console.WriteLine(x.avg); student[ ] c = new student[30]; c[0].name = "ali"; Console.WriteLine(c[0].name); Console.ReadKey(); } ساختار يا ساختمان يا ركورد ( Structure ) : name id avg

  32. ساختار در ساختار : struct date { public short y; public byte m, d; } struct student { public string name; public float avg; public int id; public date birth_date; } student s; s.name = "ali"; s.birth_date.y = 1988; Console.WriteLine(s.birth_date.y);

  33. دستور وروديConsole.ReadKey: ConsoleKeyInfo c; c = Console.ReadKey(); //if Alt+b is pressed Console.WriteLine(c.KeyChar); //b Console.WriteLine(c.Key); //B Console.WriteLine(c.Modifiers); //Alt Console.ReadKey(); c = Console.ReadKey(true); //Determines whether to display the pressed key in the console window. true to not display the pressed key; otherwise, false.

  34. تولید اعداد تصادفی : Random r=new Random(); Console.WriteLine(r.Next()); عدد تصادفی صحیح // Console.WriteLine(r.Next(900)); عدد تصادفی صحیح کوچکتر از 900 // Console.WriteLine(r.NextDouble()); عدد تصادفی اعشاری//

  35. الهي هَب‌‌ْ لي كَمالَ الاِنقِطاعَ اليك

  36. فايلها ( Files ) : فايل Text : ا نتهاي سطر ( cr / lf ) - ا نتهاي فايل EOF) يا كاراكتر 26( - عدد 123 سه بايت فايل Binary : ا نتهاي سطر ( lf ) - ا ندازه فايل در FAT نام خارجي :مثل “class.dat” و “c:\\a.txt”

  37. فایل متنی (Text) : TextWriter tw = new StreamWriter("d:\\a.txt"); tw.WriteLine("Hello"); tw.WriteLine("Ali"); tw.Close(); TextReader tr = new StreamReader("d:\\a.txt"); while (tr.Peek() != -1) { Console.WriteLine(tr.ReadLine()); } tr.Close(); Hello Ali

  38. فایل باینری (Binary) : Stream s; s = File.Open("d:\\a.dat", FileMode.Create ); BinaryWriter bw = new BinaryWriter(s); for (int i = 1; i <= 10; i++) bw.Write(i); bw.Close(); 1 2 3 4 5 6 7 8 9 10 Stream s; s = File.Open ("d:\\a.dat", FileMode.Open); BinaryReader br = new BinaryReader(s); while (br.PeekChar() != -1) Console.WriteLine(br.ReadInt32()); br.Close();

  39. نحوه بازكردن فايلها :

  40. کار با پورت سریال (Serial Port) : using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO.Ports; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { SerialPort p = new SerialPort(); p.PortName = "COM3";// اگر پورت مودم این باشد. p.BaudRate = 9600; p.Open(); p.Write("atdt 09153003003 \r\n");// atdt (Dial Tone) atdp (Dial Palse) Console.ReadKey(); p.Close(); } } }

  41. کار با پورت موازی (Parallel Port) : using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Runtime.InteropServices; namespace ConsoleApplication1 { class Program { [DllImport("inpout32.dll", EntryPoint = "Out32")] public static extern void Output(int address, int value); [DllImport("inpout32.dll", EntryPoint = "Inp32")] public static extern int Input(int address); static void Main(string[] args) { int a; Output(0x378, 64); a = Input(0x379); Console.WriteLine(a); Console.ReadKey(); } } } برای دانلود کردن فایل inpout32.dll اینجا کلیک کنید

  42. تمرینات الگوریتم و فلوچارت و برنامه : • دریافت ضرایب معادله درجه 2 ومحاسبه ریشه های آن در صورت وجود. • مساحت جانبی و حجم کره. • سه عدد را دریافت کند و تعیین کند ، آیا میتوانند اندازه اضلاع مثلث باشند. • سه عدد را بعنوان اضلاع مثلث دریافت و مشخص کند، قائم الزاویه است یا نه. • N را دریافت و تاریخ N امین روز سال را بنویسد. • M(ماه)وR(روز)را دریافت کرده و تعیین کند،این تاریخ، چندمین روزسال است. • N را دریافت و مجموع ارقام آنرا بنویسد. • محاسبه میدان مغناطیسی در اطراف یک سیم حامل جریان. (رشته کنترل و ابزار دقیق ) • ضرب خارجی دو بردار سه مولفه ای(): • در یک تعادل نیرو، مقادیر a و b و را دریافت ومقادیر  و و c را محاسبه کند. (رشته مکانیک) • محاسبه مقدار Q : (رشته مکانیک) • محاسبه اصطکاک : (رشته مکانیک)

  43. مجموع اعداد صحیح دورقمی . • مجموع 50 عدد صحیح دریافتی. • دریافت عدد یک رقمی و نوشتن معادل حروفی آن . (0 Zero, 1One, …) • تعیین اول بودن عدد ورودی .( تعداد مقسوم علیه ها 2 ) • تعیین تام بودن عدد ورودی. (عدد = مجموع مقسوم علیه های کوچکتر از خودش) • فاکتوریل عدد صحیح دریافتی. (n!) • ترکیب دو عدد دریافتی n و r . • اعداد تام دورقمی را بنویسد. • عدد صحیح n را دریافت و n عدد از سری فیبوناچی را بنویسد. (1,1,2,3,5,8,13,21, . . .) • عدد نپر (e = 2.718) را با استفاده از فرمول زیر با حداکثر دقت بدست آورید. • حاصل ex را پس از دریافت x با استفاده از فرمول زیر با حداکثر دقت بدست آورید. • حاصل Sin (x)را پس از دریافت x با استفاده از فرمول زیر با حداکثر دقت بدست آورید.

  44. اعداد اول بین دو عدد دریافتی x و y. • محاسبه واریانس 10 عدد دریافتی . • مجموع دو ماتریس دو بعدی. • دریافت ابعاد و مقادیر دو ماتریس دو بعدی و محاسبه حاضلضرب آن دو، در صورت امکان. • نمرات سه دانشجو در چهار درس را دریافت و سپس معدل هر دانشجو و هر درس را بنویسد. • در مسئله قبل نام افراد و دروس را هم دریافت نمائید و ورودی ها و خروجی ها با پیغامهای مناسب تری انجام شود. • 100 عدد تصادفی 3رقمی در یک آرایه ریخته ومرتب نمائید و سه عدد بزرگتر را نمایش دهید. • نام و معدل 5 دانشجو را دریافت و لیست مرتب شده ای بر اساس نام و سپس بر اساس معدل نمایش دهید.

More Related