Imperativ programering Inlämningsuppgift 1 sommaren 2007 Jesper Wilhelmsson 12 juni 2007 1 Deluppgift A Nedan finns fem program skrivna i fem olika språk. Er uppgift är att skriva alla fem programmen i alla fem språken. När ni är klara ska ni alltså ha 25 källkodsfiler (20 som ni skrivit själva plus de fem ni fått ut). Programmeringsspråken är C, C++, Java, Ada och Pascal. Källkoderna finns även att ladda hem från kurshemsidan. 1.1 Program 1 - C 1.1.1 Källkodsfilen غ ÒÙ Ø Óº ÒÙ Ø º» Ë Ö Ú Ö ÙØ Ø Ò Ø Øº ÒØ Ñ Ò µ Ö ÓÖ ³ ³ ³ ³ µ ÔÖ ÒØ ± µ ÔÖ ÒØ Ò µ Ö ØÙÖÒ ÁÌ ËÍ ËË 1.1.2 Att kompilera och köra Kompilera med: غ Att köra programmet: skapar en körbar fil som heter ºÓÙØ. Denna kan startas direkt från ett terminalfönster. För att starta, skriv: º» ºÓÙØ 1
1.2 Program 2 - C++ 1.2.1 Källkodsfilen ÖºÔÔ ÒÙ Ó ØÖ Ñ Ù Ò Ò Ñ Ô Ø»» Ë Ö Ú Ö ÙØ Ø ÜØ Ò Ø Ò Ò Ñ Ñ Öººº ØÖ Ò Òؾ ØÖ ÒØ ÒÙÑ Öµ ØÖ Ò Ø ÜØ Û Ø ÒÙÑ Öµ ½ Ø ÜØ Ò Ö ¾ Ø ÜØ ØÚ Ö Ø ÜØ ØÖ Ö Ø ÜØ ÝÖ Ö Ø ÜØ Ñ Ö Ö ØÙÖÒ Ø ÜØ Ñ Ò µ ÓÖ ÒØ Ò Ò ¼ Ò¹¹µ ÓÙØ Òؾ ØÖ Òµ Ò ½ Ø Ò Ñ Ö µ ØØ Ô Ò Ö Ò Ò ØÖ Ò Öº Ú Ö Ø Ö Òؾ ØÖ Ò ¹ ½µ Ò ½ Ö Ò Ò Ò ¾ Ö µ Ú Öº Ò 1.2.2 Att kompilera och köra Kompilera med: ÖºÔÔ Att köra programmet: Även skapar en körbar fil med namnet ºÓÙØ. För att starta, skriv: º» ºÓÙØ 2
1.3 Program 3 - Pascal 1.3.1 Källkodsfilen Ö ØÓ Ø Ò ºÔ ÔÖÓ Ö Ñ Ö ØÓ Ø Ò Ö ØÓ Ø Ò Ö Ò ÑÑ Ö ÓÖ ØÑ ÓÑ ØØ Ö ÔÖ ÑØ ÙÔÔ Ø Ò Ú Ò ÖÒ º µ ÓÒ Ø Ñ Ü ¾¼¼¼¼ Ú Ö ÓÙÒØ ÔÖ Ñ Þ Ñ Ü Þ ÒØ Ö Ñ Ö ÓÓ Ò ÖÖ Ý ¼ººÑ Ü Ó ÓÓ Ò Ò ÏÖ Ø ³ Ò ÚÖ ÖÒ Ñ Ü ³ Ñ Ü ³µ ³µ Ê Ò Ñ Ü Þ µ Þ Ñ Ü Þ ¹ ½µ Ú ¾ ÏÖ Ø Ò ÏÖ Ø Ò ³Á ÒØ ÖÚ Ø ºº ³ Ñ Ü Þ ³ ÒÒ Ò ÔÖ ÑØ ³µ ÏÖ Ø Ò ³¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹³µ ÓÙÒØ ¼ Ñ Ö ØÖÙ ÓÖ ¼ ØÓ Þ Ó ØÖÙ ÓÖ ½ ØÓ Þ Ó Ø Ò Ò ÔÖ Ñ ½ ÏÖ Ø ÔÖ Ñ µ ÓÙÒØ ÓÙÒØ ½ Ñ Ö Ø Ò Ò µ ½µ Þ µ ÓÖ ¼µ Ø Ò Ñ Ö Û Þ µ Ò ¼µ Ó Ò ÔÖ Ñ Ò Ò Ò ÏÖ Ø Ò ÏÖ Ø Ò ÏÖ Ø Ò ³ÌÓØ Ø ³ ÓÙÒØ ³ ÔÖ ÑØ º³µ Ò º 1.3.2 Att kompilera och köra Kompilera med: Ô Ö ØÓ Ø Ò ºÔ Att köra programmet: Ô använder för att kompilera koden så även här skapas en körbar fil som heter ºÓÙØ. För att starta, skriv: º» ºÓÙØ 3
1.4 Program 4 - Ada 1.4.1 Källkodsfilen º Û Ø ºÌ ÜØ ÁÇ Ù ºÌ ÜØ ÁÇ Û Ø ºÁÒØ Ö Ì ÜØ ÁÇ Ù ºÁÒØ Ö Ì ÜØ ÁÇ Û Ø ºÆÙÑ Ö º Ö Ø Ê Ò ÓÑ ¹¹ ØØ Ø Ø Ø Ø¹ Ô º ÔÖÓ ÙÖ Ù ØÝÔ ÆÙÑÑ Ö ÁÒØ Ö Ö Ò ¼ ºº ½¼¼ Ô Ê Ò ÓÑ ÆÙÑ Ö Ò Û ºÆÙÑ Ö º Ö Ø Ê Ò ÓÑ ÆÙÑÑ Öµ Ì ÆÙÑÑ Ö Æ ÁÒØ Ö ¼ Æ ÑÒ ËØÖ Ò ½ ºº ½¼¼µ Ë Ê Ò ÓÑ ÆÙÑ Öº Ò Ö ØÓÖ ÒØ Æ ØÙÖ Ò Ê Ò ÓÑ ÆÙÑ ÖºÊ Ø Ë µ Ì Ê Ò ÓÑ ÆÙÑ ÖºÊ Ò ÓÑ Ë µ ÈÙØ Ò ØØ Ò ÑÒ µ Ø Ä Ò Æ ÑÒ ÒØ µ ÓÓÔ ÈÙØ Ò Ò Ò Ò µ Ø µ Æ Æ ½ Ì Ø Ò ÈÙØ Ä Ò Æ ² Æ ÑÒ ½ ºº ÒØ µ ² Ò Ò Ò Ò Ú Ö Ö Ø Ò µ Ì Ø Ò ÈÙØ Ä Ò Æ ² Æ ÑÒ ½ ºº ÒØ µ ² Ò Ò Ò Ò Ú Ö Ö ØÓÖ µ ÈÙØ Ä Ò Ø Ú Ö ÖØØ µ Ò Ü Ø Û Ò Ì Ò ÓÓÔ ÈÙØ Ä Ò Ø ØÓ ² ÁÒØ Ö³ÁÑ Æµ ² Ò Ò Öº µ Ü ÔØ ÓÒ Û Ò ÓÒ ØÖ ÒØ ÖÖÓÖ ÔÙØ Ò ÌÝÚÖÖ Ú Ò Ø Ò Ò Ö Ñ Ò ¼ Ó ½¼¼ µ Ò 1.4.2 Att kompilera och köra Kompilera med: Ò Ø Ñ º Att köra programmet: Ò Ø använder förvisso precis som Ô, men skickar med flaggor för att ge resultatfilen ett trevligare namn nämligen samma namn som källkodsfilen fast utan º. För att starta, skriv: º» 4
1.5 Program 5 - Java 1.5.1 Källkodsfilen º Ú ÑÔÓÖØ Ú º Óº» Ì Ú Ù Ø ÑÔ Ñ Ø Ñ Ø ÜÔÖ ÓÒ º ÁØ ÙÔÔÓÖØ ¹» Ò µº ÔÙ» Ó»Ó Ú Ù Ø Ñ Ø Ñ Ø ÜÔÖ ÓÒ º Ô Ö Ñ ÓÑ Ø Ò Ì ÒÔÙØ ØÖ Ò ÓÒØ Ò Ò Ò ÜÔÖ ÓÒ ØÓ Ú Ù Ø º Ö ØÙÖÒ Ì Ö ÙØ ÓÖ ËÝÒØ Ü ÖÖÓÖ Ø Ö Ò ÖÖÓÖ Ò Ø ÒÔÙØ ØÖ Ò º ÔÖ Ú Ø Ø Ø ËØÖ Ò ËØÖ Ò ÓÑ Ø Ò µ ØÖÝ ËØÖ Ò Ê Ö ÒÔÙØËØÖ Ñ Ò Û ËØÖ Ò Ê Ö Ø Ö ÓÑ Ø Ò µµ ÒØ Ö ÜÔÖ ÓÒ ÒÔÙØËØÖ Ñµ ÒÔÙØËØÖ ÑºÖ µ ¹½µ Ö ØÙÖÒ ËÝÒØ Ü ÖÖÓÖ Ö ØÙÖÒ Ø ËÝÒØ Ü ÖÖÓÖ Ü ÔØ ÓÒ µ Ö ØÙÖÒ ËÝÒØ Ü ÖÖÓÖ Ø ÁÇ Ü ÔØ ÓÒ Ó µ Ö ØÙÖÒ Ó º ØÅ µ» Ó Ø Ö»Ó Ö ÑÓÚ Ò ÖÓÑ Ø Ú Ò ØÖ Ò º Ô Ö Ñ ÓÑ Ø Ò Ì ÒÔÙØ ØÖ Ò º Ö ØÙÖÒ Ì ØÖ Ò Û Ø ÓÙØ ÒÝ Û Ø Ô º ÔÖ Ú Ø Ø Ø ËØÖ Ò Ø Ö ËØÖ Ò ÓÑ Ø Ò µ ËØÖ Ò Ö ÙØ ÓÖ ÒØ ¼ ÓÑ Ø Ò º Ò Ø µ µ Û Ø ÓÑ Ø Ò º Ö Ø µµ ³ ³ ³ س Ö ÙØ Ö ÙØ Ö Ø ÖºØÓÄÓÛ Ö ÓÑ Ø Ò º Ö Ø µµ Ö ØÙÖÒ Ö ÙØ 5
» Ó Ö ÜÔÖ ÓÒ»Ó Ö Ò ÜÔÖ ÓÒ ÖÓÑ Ø Ú Ò ËØÖ Ò Ê Öº Ò ÜÔÖ ÓÒ Ò Ò Ø ÓÒ Ù ØÖ Ø ÓÒ ÓÖ Ø ÖѺ Ô Ö Ñ Ö Ì ËØÖ Ò Ê Ö ØÓ Ö ÖÓѺ Ö ØÙÖÒ Ì Ö ÙØ Ó Ø Ø ÖѺ Ø ÖÓÛ ÁÇ Ü ÔØ ÓÒ ÓÑ Ø Ò ÛÖÓÒ Û Ø Ø Ö Öº Ø ÖÓÛ ËÝÒØ Ü ÖÖÓÖ Ü ÔØ ÓÒ Ø Ö Ò ÖÖÓÖ Ò Ø ÒÔÙغ ÔÖ Ú Ø Ø Ø ÒØ Ö ÜÔÖ ÓÒ ËØÖ Ò Ê Ö Öµ Ø ÖÓÛ ÁÇ Ü ÔØ ÓÒ ËÝÒØ Ü ÖÖÓÖ Ü ÔØ ÓÒ ÒØ Ö Ì ÖÑ Öµ ÒØ Ò ÜØ Û Ò ÜØ ³ ³ Ò ÜØ ³¹³µ Ò ÜØ ³ ³µ Ö Ì ÖÑ Öµ ¹ Ö Ì ÖÑ Öµ ÖºÖ Ø µ Ö ØÙÖÒ» Ó Ö Ì ÖÑ»Ó Ö Ø ÖÑ ÖÓÑ Ø Ú Ò ËØÖ Ò Ê Öº Ø ÖÑ Ò ÑÙØ Ô Ø ÓÒ Ú ÓÒ ÓÖ ØÓÖº Ô Ö Ñ Ö Ì ËØÖ Ò Ê Ö ØÓ Ö ÖÓѺ Ö ØÙÖÒ Ì Ö ÙØ Ó Ø Ø ÖѺ Ø ÖÓÛ ÁÇ Ü ÔØ ÓÒ ÓÑ Ø Ò ÛÖÓÒ Û Ø Ø Ö Öº Ø ÖÓÛ ËÝÒØ Ü ÖÖÓÖ Ü ÔØ ÓÒ Ø Ö Ò ÖÖÓÖ Ò Ø ÒÔÙغ ÔÖ Ú Ø Ø Ø ÒØ Ö Ì ÖÑ ËØÖ Ò Ê Ö Öµ Ø ÖÓÛ ÁÇ Ü ÔØ ÓÒ ËÝÒØ Ü ÖÖÓÖ Ü ÔØ ÓÒ ÒØ Ö ØÓÖ Öµ ÒØ Ò ÜØ Û Ò ÜØ ³ ³ Ò ÜØ ³»³µ Ò ÜØ ³ ³µ Ö ØÓÖ Öµ» Ö ØÓÖ Öµ ÖºÖ Ø µ Ö ØÙÖÒ 6
» Ó Ö ØÓÖ»Ó Ö ØÓÖ ÖÓÑ Ø Ú Ò ËØÖ Ò Ê Öº ØÓÖ Ò ÒÙÑ Ö Ò Ø Ú ÒÙÑ Ö ÓÖ Ò ÜÔÖ ÓÒ Û Ø Ò Ô Ö ÒØ º Ô Ö Ñ Ö Ì ËØÖ Ò Ê Ö ØÓ Ö ÖÓѺ Ö ØÙÖÒ Ì Ö ÙØ Ó Ø ØÓÖº Ø ÖÓÛ ÁÇ Ü ÔØ ÓÒ ÓÑ Ø Ò ÛÖÓÒ Û Ø Ø Ö Öº Ø ÖÓÛ ËÝÒØ Ü ÖÖÓÖ Ü ÔØ ÓÒ Ø Ö ÝÒØ Ü ÖÖÓÖ Ò Ø ÒÔÙغ ÔÖ Ú Ø Ø Ø ÒØ Ö ØÓÖ ËØÖ Ò Ê Ö Öµ Ø ÖÓÛ ÁÇ Ü ÔØ ÓÒ ËÝÒØ Ü ÖÖÓÖ Ü ÔØ ÓÒ ÒØ» ÜÔÖ µ Ò ÜØ ³ ³µ ÒØ Ö ÜÔÖ ÓÒ Öµ Ò ÜØ ³µ³µ Ø ÖÓÛ Ò Û ËÝÒØ Ü ÖÖÓÖ Ü ÔØ ÓÒ µ Ö ØÙÖÒ» ¹ ØÓÖ Ò ÜØ ³¹³µ Ö ØÙÖÒ ¹Ö ØÓÖ Öµ» ÒÙÑ Ö Ö Ø Öº Ø Ò Üصµ ÖºÖ Ø µ Ö ØÙÖÒ Ö ÆÙÑ Ö Öµ Ø ÖÓÛ Ò Û ËÝÒØ Ü ÖÖÓÖ Ü ÔØ ÓÒ µ 7
» Ó Ö ÆÙÑ Ö»Ó Ö ÒÙÑ Ö ÖÓÑ Ø Ú Ò ËØÖ Ò Ê Öº ÁØ ÙÑ Ø Ø Ø Ø ÓÒ Ó Ø Ò ÜØ Ö Ø Ö Ò Ø Ö Ö Ö Ø º Ô Ö Ñ Ö Ì ËØÖ Ò Ê Ö ØÓ Ö ÖÓѺ Ö ØÙÖÒ Ì Ò ÜØ Ú ÒÙÑ Öº Ø ÖÓÛ ÁÇ Ü ÔØ ÓÒ ÓÑ Ø Ò ÛÖÓÒ Û Ø Ø Ö Öº ÔÖ Ú Ø Ø Ø ÒØ Ö ÆÙÑ Ö ËØÖ Ò Ê Ö Öµ Ø ÖÓÛ ÁÇ Ü ÔØ ÓÒ ÒØ ¼ ÒØ Û Ö Ø Öº Ø Ò Üصµ ½¼ Ò ÜØ ¹ ³¼³µ ÖºÖ Ø µ Ö ØÙÖÒ ÔÙ Ø Ø ÚÓ Ñ Ò ËØÖ Ò Ö µ ËÝ Ø ÑºÓÙغÔÖ ÒØÒ Ö ¼ µµ ËÝÒØ Ü ÖÖÓÖ Ü ÔØ ÓÒ ÜØ Ò ÊÙÒØ Ñ Ü ÔØ ÓÒ 1.5.2 Att kompilera och köra Kompilera med: Ú º Ú Att köra programmet: Ú skapar en klassfil som kan köras i en virtuell maskin. Klassfilen får samma namn som klassen i filen. Detta program tar in argument från kommandoraden. För att starta, skriv: Ú ½ ¾ 2 Deluppgift B Välj ett imperativt språk som ni inte kan sedan tidigare, försäkra er om att ingen annan väljer samma språk. Undersök språket och testa vad som är och inte är tillåtet. Vad är ett värde (Rvalue) i ditt språk? Vad finns det för typer? Vilka paradigmer hittar du stöd för i språket? Hitta egenskaper hos ditt språk som skiljer det från andra språk du känner till. 3 Redovisning Båda deluppgifterna redovisas på seminarie 1. Till seminariet ska du ha med dig samtliga 25 källkodsfiler från uppgift A utskrivna på papper och minnesanteckningar så att du kan diskutera och redovisa uppgift B. Källkoden ska vara snyggt skriven så att du med gott samvete kan lämna in den för granskning. Minnesanteckningarna är det bara du själv som ska läsa... 8