Fattar noll [av algoritmuppgifter]

Permalänk

Fattar noll [av algoritmuppgifter]

a) Skriv algoritm

Skriv en algoritm i pseudokod som adderar de första hundra heltalen och skriver ut summan. Din algoritm skall alltså beräkna 1 + 2 + 3 + 4 + ... + 99 + 100 och ge resultatet som output. Tips: Du kommer väl ihåg att det finns tre olika typer av instruktioner?

b) Algoritm eller inte?

Utgör följande instruktioner en algoritm? Varför eller varför inte? Tänk på de krav som man ställer på hurudana instruktioner som kan ingå i en algoritm.

1. Gå till din bank och ta ut 10 euro.
2. Ge pengarna till din handledare i Åbo .
3. Upprepa från steg 1.

c) Vad blir resultatet?

Gå igenom följande algoritm med indata x = 7, y = 9 och z = 13. Visa vad som sker i varje steg och skriv ut resultatet.

1. x <- z (betyder att x får värdet av z, tänk '<-' som en pil)
2. z <- y
3. y <- x
4. Skriv ut (x, y, z)
5. Sluta

Förstår någon av era dessa uppgifter? a och c jag funderar mest på, b har jag klar tror jag.

Permalänk
Medlem

Har glömt vad pseudokod är, men att skriva ett program som gör det som efterfrågas i a är ju inte vidare svårt... Du får nog allt tänka lite till.

Tips. Ha något som räknar upp/ner. Spara på en plats, hämta det sparade och lägg ihop med det nya. osv.

Visa signatur

Amd 64 3500+ winchester, MSI k8neo 2 platinum, Leadtek GeForce 6800 Gt **** Asus G2S, Core2duo T7500 santa rosa, 2 gb ram, GeForce 8600 gt 256 mb ddr3.

Permalänk

a) Tänk dig en forloop, glöm då inte att nollställa en summavariabel och 0 eller 1 ställa räknaren. Samt köra rätt antal gånger.
Du kan även tänka dig en whilelopp, där villkoret är att räknaren ej får överstiga 100. Det är nog det enklaste sättet i psedkod. Även här såklart tänka på att nollställa summa och räknare före.
*Jag antager att du vet vad for respektive whileloop är för något*

c) Det är bara att flytta över värdena till variablerna. Alltså de får nya värden.
Har du en någorlunda bra miniräknare så kan du kontrollera svaret där.

*edit* Det syns nog tydligare såhär.
steg 1; x = 7
steg 2; y = 9
steg 3; z = 13
steg 4; x = z
steg 5; z = y
steg 6; y = x
steg 7; print(x,y,z) // vad har nu x, y och z för värde?

*edit2*
Ifall du inte har hört talas om whileloop, så från wiki.

While är ett kommando som innebär att en slinga upprepas så länge ett booleskt argument är sant,http://sv.wikipedia.org/wiki/While
Försök då kortfattat på svenska skriva en sådan loop, är mitt tips till uppgift a.

Visa signatur

[Core i7-3930K med 32GB ram, 2*256GB SSD] & [Core i7 3770K med 16 GB RAM, 256GB SSD] som tillsammans har ett [HD 5850 1GB] och 3st 24".

Permalänk
Medlem

Bra rubrik? Dessutom borde väl den här tråden ligga i programmering.
Eller kanske matteproblemstråden.

Visa signatur

"en trevlig sak man skulle kunna göra med hans fru, det är om man malde ner henne till köttfärs, med salt och peppar och sånt där. Så gjorde man en 352 hamburgare av henne som man då gav till honom. För att då skulle ju inte han kunna äta upp dom.. ja för han är ju vegetarian. Det vore trevligt."

Permalänk
Citat:

Ursprungligen inskrivet av flraer
Har glömt vad pseudokod är, men att skriva ett program som gör det som efterfrågas i a är ju inte vidare svårt... Du får nog allt tänka lite till.

Tips. Ha något som räknar upp/ner. Spara på en plats, hämta det sparade och lägg ihop med det nya. osv.

Citat:

Ursprungligen inskrivet av bud_bundy
a) Tänk dig en forloop, glöm då inte att nollställa en summavariabel och 0 eller 1 ställa räknaren. Samt köra rätt antal gånger.
Du kan även tänka dig en whilelopp, där villkoret är att räknaren ej får överstiga 100. Det är nog det enklaste sättet i psedkod. Även här såklart tänka på att nollställa summa och räknare före.
*Jag antager att du vet vad for respektive whileloop är för något*

c) Det är bara att flytta över värdena till variablerna. Alltså de får nya värden.
Har du en någorlunda bra miniräknare så kan du kontrollera svaret där.

*edit* Det syns nog tydligare såhär.
steg 1; x = 7
steg 2; y = 9
steg 3; z = 13
steg 4; x = z
steg 5; z = y
steg 6; y = x
steg 7; print(x,y,z) // vad har nu x, y och z för värde?

*edit2*
Ifall du inte har hört talas om whileloop, så från wiki.

While är ett kommando som innebär att en slinga upprepas så länge ett booleskt argument är sant,http://sv.wikipedia.org/wiki/While
Försök då kortfattat på svenska skriva en sådan loop, är mitt tips till uppgift a.

Citat:

Ursprungligen inskrivet av Tumvante
Bra rubrik? Dessutom borde väl den här tråden ligga i programmering.
Eller kanske matteproblemstråden.

Tack alla ni som hjälpte, blev nog inte mycket till svar jag skickade in men tack för att ni tog er tid, även om jag inte förstod ett smack

Permalänk
Hedersmedlem

*tråd flyttad, titel redigerad*

Permalänk
Medlem

b. Nej: Det är inte en algoritm, det är en samling operationer i oändlighet utan utdata. Lite som MS Windows självdiagnostisering.

Ja: Det är en algoritm. Den har evigt indata och evigt utdata. Men då har vi fått MS Windows på kvatdatorer istället.

Visa signatur

It's not that you don't comprehend what's laid out before you, or that you're unable to process. It's all about what you're to live up to, your position, an identity created by the expectations of your affiliation.