Inlämningsuppgift 1, Digsim



Relevanta dokument
3 Listor. 3.1 Envägslistor

Tentamen *:58/ID100V Programmering i C Exempel 3

Lösningar till uppgifterna sätts ut på kurssidan och på WebCT (Gamla Tentor) i dag kl 19. Tentamen i Programmering C, 5p, Distans, övriga,

HI1024 Programmering, grundkurs TEN

Lämna in ifylld kursvärdering tillsammans med tentamen! Lösningarna till tentamensuppgifterna sätts ut på kurssidan på nätet i dag kl 13.

Chapter 3: Using Classes and Objects

Värmedistribution i plåt

Tentamen i. för D1 m fl, även distanskursen. lördag 26 februari 2011

Uppgifter till praktiska tentan, del A. (7 / 27)

Namn:... Klass:... Pnr:... Omtentamen i Programmeringsmetodik, 5p, D1 och E1,

2 Pekare och dynamiska variabler.

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl

C++ Funktioner 1. int summa( int a, int b) //funktionshuvud { return a+b; //funktionskropp } Värmdö Gymnasium Programmering B ++ Datainstitutionen

Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl Omtentamen i Programmering C, Fri, Kväll,

KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: 8-13, den 18 februari 2012

Tentamen i Programmeringsmetodik, 5p, Au2, D1 och E1,

tentaplugg.nu av studenter för studenter

Lösningar till uppgifterna sätts ut på kurssidan på nätet idag kl Omtentamen i Programmering C, 5p, A1, D1, E1, Fri, Pr1, Te/Ek1,

Övning från förra gången: readword

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012

Föreläsning 4. Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö

HI1024, Programmering, grundkurs, 8hp KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: Fredagen den 21 oktober 2011,

Abstrakta datastrukturer

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll,

LÖSNINGSFÖRSLAG TILL Tentamen i objektorienterad programmering i C++ I

tentamensdags och lab 3

Enkla datatyper minne

HI1024 Programmering, grundkurs TEN

6 Lågnivåprogrammering

Tentamen i Programmering grundkurs och Programmering C

Föreläsning 13. In- och utmatning

Uppgift 1 ( Betyg 3 uppgift )

HI1024 Programmering, grundkurs TEN

Tentamen i Objektorienterad Programmering 5p, Au, D, Fri, Pr,

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Tentamen: Datordel Programmeringsteknik

Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl Tentamen i Programmering C, Fri, Kväll,

Lösningarna till tentamensuppgifterna sätts ut på kurssidan på nätet under eftermiddagen.

Det finns många flaggor till g++,

Maskinorienterad programmering, IT2

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

C++ Slumptalsfunktioner + switch-satsen

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Johan Karlsson Datavetenskap för teknisk kemi, 10p, moment 1 Datavetenskap Umeå Universitet. Tentamen

TENTAMEN MOM1 GRUNDLÄGGANDE PROGRAMMERINGSTEKNIK OCH

TDP Regler

TDIU01 - Programmering i C++, grundkurs

#include <stdio.h> #include <string.h>

TDIU01 Programmering i C++

Datorövning 1. int sgd(int m, int n) { int rest; while ( n!= 0 ) { rest = m % n; m = n; n = rest; return m;

Tentamen ges för: Tentamensdatum: Tid:

Tentamen i Programmering grundkurs och Programmering C

Flexibel meny i Studentportalen

TDDC74 Programmering, abstraktion och modellering DUGGA 2

Minnestilldelning (allokering) och frigörande (avallokering) av minne

Uppgift 1 (vadå sortering?)

kl Tentaupplägg

Systemkonstruktion LABORATION REALTIDSPROGRAMMERING

1 Modulär programutveckling.

(Lösningsförslag finns sist i denna fil.)

Länkade listor kan ingå som en del av språket, dock ej i C Länkade listor är ett alternativ till:

Tentamen i. för D1 m fl, även distanskursen. lördag 28 maj 2011

Tentamen i. för D1 m fl, även distanskursen. lördag 19 januari 2013

2D1387, Programsystemkonstruktion med C++ Johnny Bigert, Kursens hemsida:

Uppgift 1 ( Betyg 3 uppgift )

BINÄRA TRÄD. (X = pekarvärdet NULL): struct int_bt_node *pivot, *ny; X X X 12 X X 12 X X -3 X X

Föreläsning 4: Poster

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

BILAGA G till Programvaruprojekt FÖRBÄTTRAT GRÄNSSNITT multipc_logic_c Rev 2.

Linköpings Tekniska Högskola Instutitionen för Datavetenskap (IDA) Torbjörn Jonsson, Erik Nilsson Lab 2: Underprogram

En kort text om programmering i C.

Programmeringsteknik med C och Matlab

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Förenklad förklaring i anslutning till kompedieavsnitten 6.3 och 6.4

Programmeringsteknik för Ingenjörer VT06. Föreläsning 10

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Objektorienterad Programmering (TDDC77)

Deklarera en struct som kan användas för att representera en rät linje

*Pekarvärden *Pekarvariabler & *

Arduinokurs. Kurstillfälle 4

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Objektorienterad programmering, Java, 5p TDBA63

TDDC30/725G63. Objektorienterad programmering i Java, datastrukturer och algoritmer

Tentamen i Programmering grundkurs och Programmering C

Uppgift 1 (grundläggande konstruktioner)

C++-programmets beståndsdelar

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

grundläggande C++, funktioner m.m.

Byggstenar. C++-programmets beståndsdelar. C++-programmets beståndsdelar. Grundläggande datatyper

Föreläsning 3.1: Datastrukturer, en översikt

Skriv i mån av plats dina lösningar direkt i tentamen. Skriv ditt kodnummer längst upp på varje blad.

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 (Sorterade heltal som är OK)

Tentamen, Algoritmer och datastrukturer

ÖREBRO UNIVERSITET. Lösningarna till tentamensuppgifterna sätts ut på kurssidan på nätet i dag kl 13.


kl Tentaupplägg

DUGGA Tentaupplägg

Övningsuppgifter. TDIU04 Programmering i C++, standardbibliotek. Innehåll. Vt Lektion Lektion Lektion Lektion 4...

Omkoppling av in- och utmatning. In- och utmatning i Unix. Kommando exempel, ls, pipe forts. Kommando exempel, ls, pipe

Transkript:

Inlämningsuppgift 1, Digsim Specifikation Skriv ett program som utför addition av heltal (positiva eller negativa) i binär form med hjälp av digitala grindar, som programmet ska simulera. Programmet ska läsa in två heltal, omvandla dessa till binär form (bitsträngar exempelvis 00010011 ), addera bitsträngarna till en summasträng och slutligen omvandla summasträngen tillbaka till ett heltal. Antalet bitar i bitsträngarna ska läsas in varefter strängarna ska skapas dynamiskt. För att avbilda negativa heltal användes tvåkomplementmetoden. Det krävs ingen hantering av overflow, alltså då antalet bitar ej räcker till. Programmet ska byggas i moduler enligt: Omvandla Bit Digsim Bitstr Bit Innehåller funktioner på bitnivå för de enkla digitala grindarna samt för en bitadderare enligt följande specifikation : /* Bit.h */ char and(char a, char b); /* Returnerar '1' om a '1' och b '1' */ char or(char a, char b); char xor(char a, char b); char not(char a); char nand(char a, char b); char nor(char a, char b); void add(char a, char b, char ci, char *sum, char *cu); /* Adderar två bitar a och b med ci som in carry och cu som ut carry enligt figur */ & n4 1 n2 & n3 1 cu a b ci = 1 n1 = 1 sum 129

Bitstr Innehåller funktioner för bitsträngar. Specifikationen ser ut som : /* Bitstr.h */ void addstr(char *astr, char *bstr, char *sumstr); /* Adderar astr och bstr till sumstr */ void twokomp(char *str); /* Tvåkomplementerar str */ Omvandla Innehåller funktioner för omvandling mellan heltal och bitsträngar. Specifikation enligt : /* Omvandla.h */ void tal_str(int tal, char *str, int nrbits); /* Omvandlar tal till en binär sträng med nrbits bitar */ int str_tal(char *str); /* Omvandlar den binära strängen str till ett heltal */ Digsim Huvudprogram som upprepat (avslut med 0) läser in antal bitar som du ska använda och dynamiskt allokerar så långa strängar för den binära formen. Programmet ska sedan läsa in de båda heltalen, skriva ut deras binära representation, utföra additionen och skriva ut summan både i binär form och som heltal. Glöm ej att strängarna ska ha plats för \0 tecken och att avallokera minne. Extra Komplettera modulen bitstr med en funktion för multiplikation av binära strängar och komplettera huvudprogrammet med multiplikation av heltal. (Ej obligatoriskt) Redovisning Redovisning sker genom att programmet uppvisas och provkörs för läraren. Godkänd redovisning utgör en del av delkurs 2 i kursen Programmeringsmetodik. 130

Inlämningsuppgift 2, Dating Skriv ett program som kopplar ihop flickor med pojkar utgående ifrån deras gemensamma intressen. Programmet ska läsa ett antal flick och pojknamn från filerna girlfile.txt resp boyfile.txt, som finns i din katalog och till varje flicka och pojke slumpa ett antal av intressena bio, dans, musik, idrott, resor och djur. Efter slumpandet ska flickorna instoppas i en flicklista och pojkarna i en pojklista. Programmet ska sedan fråga efter antalet gemensamma intressen och för varje flicka i flicklistan försöka hitta en pojke i pojklistan med minst detta antal lika intressen och sedan, om partner hittad, stoppa in paret sorterade efter flicknamn i en parlista och ta bort motsvarande flicka från flicklistan och pojke från pojklistan. Alla listor ska vara tvåvägslistor. Programmet ska byggas av abstrakta datatyper enligt beroendediagrammet: Dating Itab Ding Dlist Twolist 131

Itab /* Specifikation av intressetabeller itab.h */ #ifndef ITABH #define ITABH typedef enum {bio, dans, musik, idrott, resor, djur} intressetyp; typedef int itabtyp[6]; void slumpa(itabtyp itab); /* Slumpar en intressetabell itab */ void visa_itab(itabtyp itab); /* Visar intressetabellen itab på skärmen */ int antal_lika(itabtyp itab1, itabtyp itab2); /* Returnerar antal lika intressen i itab1 och itab2 */ #endif Ding /* Specifikation av dingar (flickor, pojkar, par) ding.h */ #ifndef DINGH #define DINGH #include "itab.h" typedef struct { char namn[30]; itabtyp itab; } persontyp; typedef struct { persontyp person; int is_pair; persontyp par_pojke; } dingtyp; void skapa_ding(dingtyp *ding, char *namn); /* Skapar pojke eller flicka med namnet namn */ void skapa_par(dingtyp *par, dingtyp flicka, dingtyp pojke); /* Skapar par av pojke och flicka */ void visa_ding(dingtyp ding); /* Visar ding på skärmen */ int passar_ihop(dingtyp flicka, dingtyp pojke, int antal); /* Kontrollerar om pojke och flicka har minst antal st lika intressen */ int is_less(dingtyp d1, dingtyp d2); /* Jämför d1 och d2 med avseende på personnamnen */ #endif 132

Dlist /* Specifikation av datinglistor dlist.h */ #ifndef DLISTH #define DLISTH #include "twolist.h" #include ding.h void fyll_lista(headtyp *lista, char *filnamn); /* Läser namn från fil, skapar ding och stoppar in ding i lista */ void para(headtyp *flicklist, headtyp *pojklist, headtyp *parlist, int nr); /* Letar för varje flicka i flicklist efter en pojke med minst nr gemensamma intressen i pojklist och om det lyckas bildas ett par som stoppas in i parlist och flickan och pojken tas bort från resp. lista */ void visa_lista(headtyp *lista); /* Skriver ut listan på skärmen*/ #endif Dating /* Huvudprogrammet dating.c */ Ska börja med att skapa tomma tvåvägslistor för flickor, pojkar och par samt sedan forsätta med en meny enligt: fyll lista para visa rensa sluta med undermeny för vilken lista flick eller pojk som ska fyllas fyller parlistan med hittade par sorterade efter flicknamn med undermeny för vilken lista som ska visas på skärmen med undermeny för vilken lista som ska rensas avslutar programmet Menyn ska ha filter för säker inmatning. 133

Extra Ej obligatorisk uppgift : Komplettera med ett alternativ ompara som frågar efter en flicka i parlistan och parar om henne med en annan pojke med ett nytt inläst antal lika intressen. Den först parade pojken stoppas tillbaka i pojklistan om ny pojke hittats. Redovisning Uppgiften ska redovisas med en fullständig rapport innehållande försättsblad, innehållsförteckning, sammanfattning med användarnamn och katalog där den körbara filen finns samt bilagor i form av användaranvisning (manual), exempel på utskrift av en parlista som för 4 gemensamma intressen och den källkod som du skrivit. Godkänd rapport utgör en del av delkurs 2 i kursen Programmeringsmetodik. 134