C: Inlämningsuppgift 7, Kvalitetsstatistik

Specifikation

På en komponentfabrik tillverkas motstånd i ett antal serier. Efter tillverkningen kontrollmäter man motståndens resistanser. För att få en jämnare kvalitet på tillverkningen vill man följa upp mätningarna genom att se hur avvikelserna från det nominella resistansvärdet varierar med tiden för varje serie.

I din aktuella katalog (där du packade upp filen Studprog.zip, som finns på kursens hemsida) finns en textfil measure.txt som innehåller ett antal serier med uppmätta resistansvärden för motstånd med nominella resistansen 220 ohm. Varje serie avslutas med resistansvärdet 0.0. Demoprogrammet kvaldemo.exe, som finns i samma katalog, läser mätfilen och ritar upp en trendkurva, som visar den procentuella avvikelsen för varje serie från det nominella resistansvärdet. Provkör programmet i utforskaren och välj från menyn genom att flytta dig dit med piltangenterna och verkställa med RETURN. Skriv in namnet på mätfilen enligt ovan och välj sedan 'Visa statistik' från menyn:

Exempel

Avsluta sedan programmet.

Programmet i filen kvalstud.c, som också finns i din katalog, är en del av ovanstående program. Din uppgift är att fullborda programmet genom att skriva funktionerna las_data och visa_stat.

las_data läser resistansvärden från mätfilen och fyller vektorn serie med ett antal serie-poster, en per serie. Varje serie-post ska hålla reda på seriens totala antal motstånd, totala antalet som avviker mer än 5% från det nominella värdet, och medelvärdet av alla resistanser i serien. Funktionen ska returnera antalet serier.

visa_stat ska i diagramform rita en trendkurva som visar medelvärdenas avvikelser för varje serie från det nominella värdet samt, avslutningsvis, det totala antalet motstånd och det totala antalet utanför 5%-gränsen både absolut och i procent. För ritning av kurvan ska du använda gotoxy i MSViscon-paketet.

Redovisning

Redovisningen av den här inlämningsuppgiften består av två delar:
  1. Själva programmet, som ska provköras av läraren.
  2. En fullständig (och läsbar!) rapport, som innehåller försättsblad, innehållsförteckning, sammanfattning av vad programmet gör samt bilagor i form av användarhandledning (manual), och såväl strukturdiagram som källkod (i rapporten!) för funktionerna las_data och visa_stat. Dessutom ska trendkurvan vara med. Man kan kopiera skärmen med Alt- och PrintScrn-tangenten, och sedan klistra in grafen på rätt plats i rapporten.
Observera att ett strukturdiagram inte är samma sak som ett flödesschema. Läs mer i kapitel 3 i kompendiet eller i Wikipedia om strukturdiagram. Det ska vara ett strukturdiagram för las_data och ett annat för visa_stat. Det finns olika typer av diagram som visar strukturen på ett program, men strukturdiagrammen i den här kursen kan bara beskriva ett enda sammanhängande kodavsnitt, inte flera olika funktioner. Att vi har med dem är till för att lära ut två ganska enkla saker, nämligen först att det finns en blockstruktur i koden och sen att det finns olika sätt att beskriva samma program, inte bara källkoden, och att det inte är säkert att det är just källkoden som alltid är den tydligaste eller mest lättjobbade representationen. Med kodens blockstruktur menas att man kan rita upp strukturen på en kodsnutt inuti en funktion som block inuti block, där blocken är inuti varandra men aldrig överlappande. Till exempel en if-sats kan innehålla en sant-gren som innehåller två while-loopar.

Läs också gärna Hur man skriver en rapport.

Läser du kursen på distans skickar du rapporten (helst i PDF-format) och källkoden (.c-filen) med e-post.

Godkänd redovisning utgör en del av delkurs 2 i Programmering C.

Om samarbete på inlämningsuppgifterna: Varje grupp (som normalt består av en eller två studenter) ska göra en egen lösning, och skicka in den, men det är inte förbjudet att samarbeta eller fråga andra studenter om hjälp. Däremot ska man i så fall tydligt ange vilka som man samarbetat med. Varje lösning måste ange namnet på alla som bidrog i arbetet. Samarbete är alltså tillåtet, men måste redovisas.

Observera vad det står i rutan ovanför. Det står att samarbete är tillåtet, men varje grupp ska göra en egen lösning. Något som inte är tillåtet att utgå från en existerande lösning, som man till exempel fått av en kamrat, och ändra lite i den så man tror att läraren inte ska känna igen den. Man måste alltså göra en egen lösning.


Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se), 12 mars 2014