Till KTH:s startsida Till KTH:s startsida

Laboration 6

Laboration 6 - Formelkoll

I denna labb ska du

  • Lära dig att använda domaren Kattis, ett automatiskt system för rättning av labbar.
  • Skriva ett program som läser in molekylformler och kontrollerar om dom är syntaktiskt korrekta. Närmare instruktioner finns i Kattis - problemet heter formelkoll2.

Registrera dig på Kattis

Gör så här:

  1. Följ länken: Kattis
  2. Logga in (längst upp till höger) med ditt KTH-id
  3. Välj "Kurser" i övre blå menyn
  4. Välj "tildav14" (långt ner i listan)
  5. Klicka på "Jag är student på den här kursen och vill registrera mig på Kattis."

Lär dig använda Kattis

Indata

Programmen du skickar till Kattis ska läsa indata från stdin. Det fungerar som att läsa från fil! Exempel:

from sys import stdin

inrad = stdin.readline()
while inrad:
    lista = inrad.split()
    tal1 = int(lista[0])
    tal2 = int(lista[1])
    ...
    inrad = stdin.readline()

Utdata

Utdata kan du skriva ut med print som vanligt.

Öva på två problem

Arbeta igenom följande enkla uppgifter

Formelkoll

Läs instruktionerna för problemet formelkoll2.

Ditt program ska läsa formeln tecken för tecken och med rekursiv medåkning kolla syntaxen. Rekursiv medåkning innebär att huvudprogrammet först gör anropet readformel(), varefter readformel() anropar readmol() som anropar readgroup() och sedan eventuellt sej själv (men inte om inmatningen är slut eller om den just kommit tillbaka från ett parentesuttryck).

Funktionen readgroup() anropar antingen readatom() eller läser en parentes och anropar readmol() etc - allt enligt grammatiken. När ett syntaxbrott upptäcks genereras en exception (raise Syntaxfel("Saknad högerparentes")) som fångas i huvudprogrammet och där skrivs hela resten av indataraden ut.

Man måste ofta tjuvtitta på nästa tecken för att veta vilken gren man ska följa i syntaxträdet. Inför metoden peek() i din köklass, så kan du titta på nästa tecken utan att plocka ut det ur kön.

Om du har flera programfiler måste du ange vilken som innehåller main (bortse från att det står "Java only" - detta gäller även Python!)

Betyg

betyg E: Ditt program ska godkännas av Kattis (och förstås av handledaren vid redovisningen).
Du även kunna

  • Beskriva hur rekursiv medåkning fungerar.
  • Visa hur dina funktioner speglar den givna syntaxen.
  • Förklara varför man inte måste räkna antalet parenteser.

betyg C: Kraven för E uppfyllda +  Labben inlämnad via KTH Social i tid ch redovisad i tid (se datum under Laborationer).
Du ska också:

  • Skriva en spec med namnen på alla funktioner du planerar att skriva och en kommentar för varje funktion som beskriver vad funktionen ska göra.
    Se exempel från prgi12 (förel 12) alternativt prgcl13.

betyg A: Kraven för C uppfyllda +

  • Skriv ett eget testprogram som kontrollerar de exempeldata som ges i formelkoll2.


Den här labben ska redovisas tillsammans med labb 7.

Alexander Baltatzis created page 14 January 2014

commented 9 March 2014

Jag får runtime error på tredje testet i Kattis.

Med: Judgement details: Exited (non-zero exit status)Betyder det att min algoritm är för långsam? Kan man se fallet Kattis testar för någonstans?

Jag har testat koden för alla exempel jag kan komma på, och den funkar.

Om den är för långsam: behöver jag sätta alla bokstäver i träd och använda hashtabellen från 5:an för grundämnerna? Gör inte inläsningen programmet långsammare då?

Teacher commented 9 March 2014

Nej, det är inte tiden som är problemet utan att ditt program kraschar för något testfall.

Har du provat med både korrekta och felaktiga testfall?

commented 10 March 2014

Jag har testat för alla de fall som finns som exempel. Har trippelkollat att mina utskrifter är EXAKT som de i exemplet.

Går väl förbi allmänna handledningen och frågar i em.

Teacher commented 10 March 2014

Men det är bara de två första testerna som finns i exemplet. Övriga testdata vet du inget om. 

Tänk dig att du slagit vad med en kompis om att hon inte ska kunna krascha ditt program. Prova att köra programmet med de ondsinta indata som hon skulle prova med och se vad som händer...

commented 10 March 2014

Som att hon typ använder tecken man inte får... eller att hela filen är på fel format? Hur ond är Kattis liksom?

Teacher commented 10 March 2014

Det är inte säkert att det är de knäppaste indata som är ondast - subtila missar kan vara svårare för programmet att hitta.

Om vi jämför dessa två rader:

%"#&?$\}{@_£*

C((OH5)(H2O)4)8

så skulle jag nog säga att den andra faktiskt är ondare...

One user removed his/her comment
commented 26 March 2014

Hej! Jag kan inte se vad jag gör fel, som KATTIS tyvärr inte gillar. Kanske kan få en hint om du tittar på min inlämning med ID: 497602.

//Mikael

Teacher commented 26 March 2014

Hej Mikael,

Tips: Kolla på syntaxen för <num>

commented 26 March 2014

Hej!

Mitt program godkänns på de två första av de fyra testfallen. Ungefär vad testas i det tredje fallet då mitt program misslyckas? Jag får felmeddelandet Run Time Error Exited (non-zero exit status). 497699 är mitt körningsnummer.

Jag tackar så mycket för din hjälp, jag famlar i mörker just nu :)

MVH Fredrik

commented 27 March 2014

Min senaste körning är 497797, se ovan för min fråga.

Teacher commented 27 March 2014

Run Time Error betyder att ditt program kraschar för något indata.

Om jag var du skulle jag hitta på en massa testfall med parenteser och provköra för att upptäcka vad det är ditt program reagerar på. 

commented 28 March 2014

Hej!

Jag har samma problem som Fredrik ovan men programmet kraschar på första testet. Vi har testat alla testfall i formelkoll2 (får precis rätt felutskrift) och även med våld försökt krascha vårt eget program men inte lyckats. Har testat alla möjliga tänkbara konstiga molekylformler/tecken/långa parentesföljder etc. Har även fått hjälp på allmänhandledningen utan resultat. Vad gör man i så fall nu? Kan man inte få någon typ av felutskrift från Kattis? Känns hopplöst när man inte har en aning om vad som är fel.

commented 28 March 2014

Senaste körningen har ID 498616.

commented 28 March 2014

Hej!

Vi får felet Wrong Answer på testfall 3. Vi har provat alla givna testfall och vi kan inte hitta nåt fel på det vi gjort. Vi har ingen aning om vad som är fel. Test ID 498611

Teacher commented 28 March 2014

@Nina - vi kan inte se din inskickning. Har du anslutit dig till tildav14 i Kattis?

Teacher commented 28 March 2014

@Ludvig Ditt program underkänner en korrekt kemisk formel. De fyra givna korrekta testerna täcker inte alla godkända formler. Det går att tänka ut fler testfall. Tänk t.ex. på randvillkor och särfall, hur få eller många atomer tillåter du? Om du har svårt att komma på fler molekyler kan du googla efter dem. Då kan man hitta t.ex.

http://en.wikipedia.org/wiki/Dictionary_of_chemical_formulas

commented 28 March 2014

@ Linda Oj! Det är fixat nu. Mitt problem var tydligen att vi inte skickat in hjälpfilerna (typiskt). Får dock fortfarande Run Time Error men nu på test 3: 498623.

Teacher commented 28 March 2014

@Nina:

Läs syntaxen igen, speciellt num-delen. Kolla också wikipedia-länken som Alexander skickade ovan, där finns exempel på fler molekyler

PS Vad bra att ni har ändringshistorik i början av programmet!

commented 28 March 2014

Hej!

Vårt program klarar inte ens första testfallet, och vi kan inte för våra liv förstå varför. Börjar nästan tro att det är en blank rad för lite eller ett mellanslag som saknas? Skulle uppskatta en hint, test ID 498720

P.S koden är en röra för tillfället!

commented 28 March 2014

Hej! Vi har lite problem att identifiera vad som är fel med vår kod. Vi har provat alla de givna testfallen och en hel drös med andra testfall och åtgärdat felen allt eftersom. Skulle uppskatta om du (Linda) skulle kunna ta dig en titt på ID: 498734 (https://kth.kattis.scrool.se/submission?id=498734).

Tack! 

Teacher commented 29 March 2014

@Erik:

Det verkar vara allra första testfallet i uppgiften: "Na", där ert program enligt Kattis skriver ut "Saknad stor bokstav vid radslutet" istället för "Formeln är syntaktiskt korrekt"

Hur ser det ut när ni kör första testfilen?

Teacher commented 29 March 2014

@August:

Enligt Kattis skriver ert program ut "Felaktig gruppstart vid radslutet" för allra första testet i lydelsen. Titta på inläsningen - kanske är den inte som den ska.

commented 29 March 2014

@Linda:

Den returnerar just "Formeln är syntaktiskt korrekt" för Na (och rätt output för alla övriga fall som listas i uppgiftsbeskrivningen). Kan det vara något med inläsningen som knasar?

Teacher commented 30 March 2014

@Erik:

Skippa ledtexten i programmet ("Försök krascha:") så kanske det går bättre!

Teacher commented 30 March 2014

Titta på problembeskrivningen.

Det är bara det som står under Sample output som ska synas på skärmen när man kör programmet!

commented 30 March 2014

@Linda

Du tittar på fel funktion! I main() (som körs) visas endast sample output (du tittar på en testfunktion som endast används vid just testning). :)

commented 30 March 2014

Hej! Vi har fastnat på det tredje testfallet. Utifrån en tidigare kommentar antar vi att vi underkänner en formel som egentligen ska godkännas. Vi har testat att köra flera stycken av formlerna från länken nedan, och alla har returnerat syntaktiskt korrekt, så vi undrar om det är något annat skumt som spökar:

http://en.wikipedia.org/wiki/Dictionary_of_chemical_formulas

ProblemID: https://kth.kattis.scrool.se/submission?id=499150

commented 30 March 2014

Jag har testat alla 1644 wikipedia formler, och klarar ändå inte 3e testfallet. Varför kan ni inte bara ge oss de testfall vi ska klara så fixar jag mitt program på 5 minuter istället för det här meningslösa arbetet.

commented 30 March 2014

Kan man skriva spec:en som kommentarer under varje funktion i sitt program, eller ska det skrivas på ett separat papper?

commented 30 March 2014

Hej!
Vi försöker skicka in till Kattis, men får Run Time Error på första testet. Vi har gått igenom och kollat att alla utskrifter är precis som den givna outputen.. Kan man få någon slags härledning till vad som inte fungerar?
ID: 499310

commented 30 March 2014

@Emil: Det beror kanske på hur ni tar in från std, vi använde

import sys


for formel in sys.stdin:
        formel = formel.strip()


Det funkade när vi använde det där sättet, då får man in atomformeln som tex "H2O\n" och sen tar strip bort \n --> "H2O"

commented 31 March 2014

Hejsan
Jag sitter också fast på test 3!
Någon som löst den eller har en aning om vad som brukar fastnar?

commented 31 March 2014

Gällande A uppgiften, är tanken att man ska skriva ett program som öppnar sitt syntaxprogram som en subprocess och skriver till den via stdin och tar emot svaret via stdout för att sedan jämnföra med förväntat svar?

För jag antar att det är så kattis fungerar?

Eller räcker det att användaren läser av svaren och kollar att det är okej?

Mvh

Stefan

commented 31 March 2014

@Jonathan

Testa gör en testtextfil med datan som står uppskriven, och starta programmet (detta gäller för windows) "more testdatafil.txt | python syntaxfil.py". Så ser du om det blir rätt på alla testfall eller ej (dvs om det blir exakt samma output som i exemplet).

commented 31 March 2014

Tack @Stefan

Har dock redan prövat detta, alla givna testfall stämmer överens...

commented 31 March 2014

@Linda
Har du möjlighet att kolla på vårt program för att se vilka testfall som inte fungerar (vi fastnar på test 3/4). Vårt ID är 499605

Mvh Karin

commented 31 March 2014

@Linda

Skulle du kunna kolla vilka testfall som ej fungerar för oss? (fastnar också på test 3/4). ID:499612

Tack!

Mvh Eric

commented 31 March 2014

Hej Linda!

Skulle också gärna vilja ha en liten hint om vad det är som inte fungerar. Fungerar med allt som jag kan komma på att skriva in själv.

ID 499653

Vad ska det ge för output om man skickar in exempelvis Na32 H2O, alltså på samma rad utan mellanslag? Min ger "Felaktig gruppstart vid  H2O".

Teacher commented 31 March 2014

@Anton:

Kan inte se din inlämning - har du anslutit dig till tildav14?

Tänk på att programmet ska fungera för både korrekta och felaktiga indata (wikipedia-sidan innehåller bara korrekta).

Teacher commented 31 March 2014

@Niklas:

Vi skulle kunna ger er själva programmet också, men då skulle ni inte lära er lika mycket :-)

Teacher commented 31 March 2014

@Niklas igen:

Kolla så att restutskriften funkar (när resten av raden skrivs ut vid syntaxfel).

commented 31 March 2014

Grejen är att "resten av raden" är lite inkonsekvent, jag har anpassat mitt program så att det passar de givna testfallen, men det är svårt att veta om det t ex skrivs en bokstav för mycket eller lite; det beror på om man använt rad.pop eller bara läst från raden.

commented 31 March 2014

Hej!

Vi har testat alla fall och det funkar men vi lyckas ändå få fel svar (test 3/4). Ska vi skicka in filen på social ändå?

Mvh Michelle

One user removed his/her comment
Teacher commented 31 March 2014

@Bergh id=499314

"Okänd atom vid radslutet" XXXX
Den okända atomen XXXX skrivs inte ut av ert program


@Anton Sivertsson
Ni får
"Formeln är syntaktiskt korrekt"
men borde vara "Okänd atom vid radslutet XXXX"

@Eric Ahlqvist id=499612
Ni hittar en parentes istället för en siffra


@Karin Åsenius, Jonathan de Laval, Emil Westin ni verkar vara klara, är det något ni behöver hjälp med nu?

Teacher commented 31 March 2014

@Michelle Cañada Hu 

testa H1, det borde bli För litet tal vid radslutet 1

Teacher commented 31 March 2014

@Victor Malmgren, spec på separat sokument

One user removed his/her comment
Teacher commented 31 March 2014

@Niklas Bergh, Jättebra att du testat 1000 formler. Då godkänner ditt program det som ska godkännas. Programmet ska även underkänna formler som inte ska godkännas. Se kommentar ovan: 

@Bergh id=499314

"Okänd atom vid radslutet" XXXX
Den okända atomen XXXX skrivs inte ut av ert program

One user removed his/her comment
commented 31 March 2014

Inte riktigt säker på att jag förstår vad du menar. Med input:

C(Xx4)5
C(H)2Xx(CH)5
CXx

Får jag:

Okänd atom vid radslutet 4)5
Okänd atom vid radslutet (CH)5
Okänd atom vid radslutet

Det är alltså fel?

commented 31 March 2014

@Alexander
Hej! 
Nej, vi fick ihop det så att Kattis godkände! Tack iallafall!
En undran vi dock har är hur hårt det är att man följt syntaxen helt korrekt? Kattis struntar ju helt i hur koden ser ut, och tittar bara på output.

/ Emil

One user removed his/her comment
Teacher commented 1 April 2014

@Emil, uppgiften måste lösas med rekursiv medåkning. Annars är det inte godkänt. Till din hjälp får du en BNF-syntax. Det är svårt att göra små ändringar i syntaxen och tillhörande små ändringar i den rekursiva medåkningen som klarar testerna. Om du lyckas med det och kan förklara och motivera ändringarna så visar du förståelse för uppgiften och blir godkänd..

@Niklas Bergh, Prova med många stora bokstäver typ YXXXXXX som indata

commented 3 April 2014

Hej,

Likt flera andra här har jag fastnat på testfall 3 i Kattis. Då det inte finns specifikation på vad testfallen innehåller är det svårt att veta vilken typ av data programmet hanterar fel, alla testfall angivna i uppgiften fungerar. Min programkod finns på id 500971, vilken input ger fel utskrift, och vad ska i så fall utskriften vara? (Har testat med det du skrivit som svar ovan, men det verkar fungera korrekt i mitt fall? Exempelvis läser den in varje ny stor bokstav som ny atom.)

Tacksam för svar.

Erik

Teacher commented 3 April 2014

@Erik:

Läs syntaxen för <num> igen!

commented 3 April 2014

Ah, förstod vad som var fel! Tusen tack Linda! :-)

One user removed his/her comment
commented 3 April 2014

Hej, angående:

  • Förklara varför man inte måste räkna antalet parenteser

Mitt program räknar antalet vänsterparanteser och drav av för högerparanteser, måste jag hitta något smartare sätt att lösa det?

Mitt program klarar bara 999 parantesgrupper i varandra pga maximala rekursionsdjupet, räcker det?

Teacher commented 4 April 2014

999 parentesgrupper räcker!

commented 4 April 2014

Och räknandet av paranteser? Jag kan ju implementera en stack, men eftersom det är mer krävande att lägga och ta ut något från en stack än att in-/dekrementera ett heltal, så känns det onödigt. Eller är jag helt ute och cyklar?

commented 4 April 2014

Hej

Mitt program klarar inte testfall 2 i kattis. Alla sample inputs givna i uppgiften fungerar och jag skulle gärna vilja veta vilket testfall som inte godkänns. Mitt program-id är: 501330

/Erik

commented 4 April 2014

Har samma problem, klarar alla testfall jag har kört på den men Kattis underkänner testfall 2. Program-id: https://kth.kattis.scrool.se/submission?id=501032

/Viktor

commented 4 April 2014

Hej,
Jag sitter fast på test 3. Får Run Time Error
Exited (non-zero exit status)
Har förståt att detta kan innebära vad som helst för fel. Kan man få lite hjälp?
Vet inte riktigt vad som är fel, funkar för alla tester enligt exemplet.
ID 501368

Teacher commented 4 April 2014

@Didrik:

Hur ser syntaxen ut för parentsuttryck?

Teacher commented 4 April 2014

@Erik Alfred:

Det blir felavbrott direkt - för första raden i Input 2.

PS Ni använder väl inte Exception rå? Definiera en egen klass som ärver från Exception istället.

Teacher commented 4 April 2014

@Viktor:

Just ordet parentes finns med på listan över de vanligaste felstavade orden!

Teacher commented 4 April 2014

@Sebastian:

Kör lite egna tester som kontrollererar om ReadNum fungerar som den ska!

One user removed his/her comment
One user removed his/her comment
commented 5 April 2014

@Linda:
Okej, jag har gjort det helt utan att räkna parenteser. Men mitt sätt kräver att Exception med meddelandet "Felaktig gruppstart" raisas i readmol/readformel, alltså inte i readgroup där den hör hemma. Detta gör medåkningen mer ointuitiv. Går det att göra bättre?

One user removed his/her comment
commented 5 April 2014

Är det tillåtet att räkna antalet parenteser?

Teacher commented 6 April 2014

@Didrik:

Din lösning är helt OK, men som du mycket riktigt påpekar vore det snyggare att ha 

WrongSyntax("Felaktig gruppstart")

i readGroup. Den satsen skulle kunna ersätta return False. 

Teacher commented 6 April 2014

@Per:

Programmet ska fungera utan parentesräknare!

Men om du gör det i samband med felsökning eller som extrafiness så är det OK - du behöver inte städa bort det före redovisning.

commented 6 April 2014

@Linda: 
Med den design jag har nu så går det inte att ersätta return False (eller True som makear mer sense isf) i readgroup med raise WrongSyntax. Förstår inte vad du menar. Jag måste försöka hitta ett bättre flöde, antar jag. Den design jag har nu funkar i Labb6, men skapar problem i labb7.. Det jag undrar är mest är om jag är på rätt spår, eller om jag måste tänka om helt.

commented 6 April 2014

Hej!
Tack Linda!

Två nya frågor
Är det tillåtet att endast redovisa lab 6 på onsdag? Kommer det finnas möjlighet att redovisa lab 7

vid senare tillfälle till exempel 5 maj?

/Per

commented 6 April 2014

@Linda
Så klart att det är nåt så enkelt som en felstavning. Men nu fastnar den på testfall 3 och jag har prövat allt jag kan komma på för att få den returnera nånting som den inte ska returnera utan att lyckats. https://kth.kattis.scrool.se/submission?id=501664

commented 7 April 2014

Hej @Linda

Även jag har fastnat på problem 3, med Wrong Answer. Har du några tips på vad jag kan leta efter?

https://kth.kattis.scrool.se/submission?id=501862

Tack!

Teacher commented 7 April 2014

@Carl Oskar:

Läs syntaxen för <num> och se till att ditt program gör likadant.

Ditt program verkar skriva ut extra tomrader ibland, kolla det också.

Teacher commented 7 April 2014

@Viktor:

Aha - ett bra exempel på varför man får skylla sig själv om man använder Exception direkt istället för att definiera en egen klass som ärver från den :-)

Vid tillräcklig provokation skriver ditt program ut:

unsupported operand types for contains: 'str', 'NoneType' vid radslutet 

Teacher commented 7 April 2014

@Per:

Ja - man kan redovisa enbart labb 6 nu och ta labb 7 på labbtiden i maj.

Teacher commented 7 April 2014

@Didrik:

Ja - du är på rätt spår!

Om du vill använda din True/False-variant även i labb 7 så kan du ju returnera två värden från dina funktioner.

commented 8 April 2014

Det stod något om restlabbstillfällen på måndagar 16-17 på https://www.kth.se/social/course/DD1320/page/bokning/, gäller detta eller är det bara labbtiden i maj man kan redovisa på sen?

commented 8 April 2014

Jag får inte min kod att fungera. Fastnar även jag på testfall 3/4 och förstår inte varför... https://kth.kattis.scrool.se/submission?id=502176 

commented 8 April 2014

Får inte heller min kod att fungera. Stannar redan vid första testfallet. Däremot är bägge output-exempel rätt, även andra test som jag gjort själv. Tacksam för ledtråd. https://kth.kattis.scrool.se/submission?id=502346

Teacher commented 8 April 2014

@Erik:

Läs från stdin enligt instruktionerna (istället för att öppna en infil).

Och använd inte Exception rå - det straffar sig i längden :-)

Teacher commented 8 April 2014

@Jessica:

Restlabbstillfällen är i första hand till för dom som inte har några ordinarie labbtillfällen kvar!

Teacher commented 8 April 2014

@Jessica:

Kontrollera att "readAtom" fungerar som den ska!

commented 13 April 2014

Hej @Linda!

Vårt program fastnar på det andra testfallet. 
Vet du vad som kan vara problemet?

Run no. 504663

Teacher commented 13 April 2014

Tyvärr - jag har inte rätt att titta på den :-(

Har ni gjort punkt 3-5 överst på denna sida?

commented 14 April 2014

Hej
Jag redovisade den här labben i tid men lämnade in den försent, pga av ett krävande KEX. Jag redovisade på A nivå enligt labbassistenten, och han påpekade att jag kunde fråga er om jag kunde få ett högre betyg än E, trots den sena inlämningen. Är det möjligt?

commented 14 April 2014

Hej

Kattis godkänner inte tredje testfallet för oss. Vad kan vara fel? program-ID: 505035

Teacher commented 14 April 2014

@Erik Alfred:

Oj, det var långa villkor i if-satserna!

Räknar ni "A" som en atom?

commented 15 April 2014

Hej @Linda!

Vi får problem då programmet fastnar på testfall nr 2 och vi har inte lyckats lista ut varför.
Programmet ligger under länken: https://kth.kattis.scrool.se/submission?id=505243

Tack på förhand!

Teacher commented 15 April 2014

@Jacob:

Kopiera felutskrifterna under "Sample output" i lydelsen så att det blir exakt samma text som ert program skriver ut.

commented 16 April 2014

Tack @Linda!

Har kopierat alla utfallstexter så att det skrivs ut exakt rätt. Nu fastnar programmet på det sista testfallet. Har trippelkollat allting och testat både korekta och felaktiga testfall.
Vi hade varit tacksamma för lite hjälp.

505287

Teacher commented 16 April 2014

@Jacob:

Kommer ni inte på fler testfall? Be en godtycklig person (som inte är insatt i labben) att provköra programmet.

commented 26 May 2014

Vi får Run TIme Error med Exited (non-zero exit status). Har ingen anning om varför detta sker. 510532 är vårt ID

commented 26 May 2014

när vi själva kör programmet kan vi inte få det att krasha

commented 26 May 2014

Nu kraschar inte programmet längre. Men skulle ni kunna se vart det blir fel nu då vi får wrong answer? ID 510540

Teacher commented 27 May 2014

Det är första testfallet som inte går igenom. 

Provkör med Input 1

commented 27 May 2014

Testade köra alla testfall på input 1. Det var inga problem och jag får "Formeln är syntaktiskt korrekt" för alla testfallen så som sample output 1 tycker att det skall vara.

Teacher commented 27 May 2014

Kör du samma program som ni skickat in?

När Kattis kör ert program blir resultatet "Okänd atom vid radslutet 2O" för indata "H2O"

commented 27 May 2014

Det var samma program som jag skickade in. När jag kör H2O får jag "Formeln är syntaktiskt korrekt".

Teacher commented 27 May 2014

...och när jag själv sparar ert program och provkör så ser det ut så här:

>python3 lab6.py 
H2O 
Okänd atom vid radslutet 2O 
commented 27 May 2014

Hej! 

Vi fastnar på testfall 1. 
Vi har ID: 510581

När vi kör själva :
more .\molekyltest.txt | python .\formelkoll_egna_testfall.py

så fungerar atomerna som finns med på input 1 och 2. 

Teacher commented 27 May 2014

@Freddi:

Prova att hantera en rad i taget (läsa in + analysera + skriva ut) istället för att vänta med analysen tills # kommer.

commented 27 May 2014

Hej! 

Vi testade förändringen som du föreslog, resultatet är detsamma. 
vårat nya ID: 510589

nya tips? 

Teacher commented 27 May 2014

Nja, den inlämningen fick ni Run Time Error på, det är väl inte riktigt samma resultat :-)

Just nu (510613) verkar ni vara ur fas. Prova med en infil med många olika typer av indata - kanske ger vissa ett extra radbyte?

commented 28 May 2014

Hej. Vi har klarat testfall två med korrekta testfall. Dock så får vi fel på de testfall som skall vara fel. Vi har kört alla exempeltestfall från kattis som ska ge fel och vi får exakt samma utskrifter. Vart går det fel? ID 510637

commented 28 May 2014

Eller är testcase 3 något annat?

Teacher commented 28 May 2014

Ja, trean innehåller en massa andra testfall.

Nu gäller det för er att testa ert program med allt ni kan komma på!

commented 28 May 2014

Vi hittade lite fel som gjorde vad vi tror är fel utskrift. Vi har försökt med jättemånga olika kombinationer och det verkar se rätt ut. Kan vi få nån hjälp till vart det blir fel? ID 510655

Teacher commented 28 May 2014

Kontrollera att er uppfattning om vilka tal som är tillåtna stämmer överens med den givna syntaxen. 

commented 28 May 2014

Ska talen bara få gå upp till 9? 1 är ej godkänt för oss. Eller är det att negativa tal ska bli "för litet tal" och inte felaktig gruppstart?

commented 28 May 2014

Ok, vi hittade. Vi kunde inte ha tal som 11, 132 osv

commented 3 June 2014

Hej! Jag fastnar på testfall 3 och kan inte komma på vad som går fel. Har kollat igenom de
som tidigare har frågat här men tycker att mitt program gör allt det som det ska. ID 509663

Teacher commented 3 June 2014

Var har du stdin?

commented 4 June 2014

Nu används stdin men fortfarande samma felmeddelande. ID 511113

Teacher commented 4 June 2014

Provkör med fler indata! Hitta på lite mer komplicerade formler med flera parentesnivåer och gör fel på olika sätt.