Översätt kod till pseudokod [Skoluppgift — mod]

Permalänk
Medlem

Översätt kod till pseudokod [Skoluppgift — mod]

Tjenare! jag skulle behöva hjälp med att översätta denna kod till pseudokod

public class sortpsuedokod {

public static void sortering(int[] a) {

boolean y = true;
while(y){
y=false;
for(int i=0; i < a.length-1; i++ ){
if(a[i] > a[i+1]){
y= true;
int temp = a[i+1];
a[i+1] = a[i];
a[i] = temp;
}
}
}
}

public static void main(String[] args) {
int[] a1= {7, 5, 8, 2};
sortering(a1);
for(int i = 0; i < a1.length; i++){
System.out.println(a1[i]);
}

}

}

Förtydligade rubrik.
Permalänk
Medlem

Sortera array.

Kalla på sorteringsfunktionen och ge den en array att arbeta med.

Visa signatur

Desktop: i5 2500K, 32GB RAM, Intel 330 60GB SSD, 1TB HDD, GTX 670, Fractal Design Arc, Arch Linux
Laptop: Asus U32u, Intel 330 60GB SSD, 8GB RAM, Arch Linux

Permalänk
Medlem
Skrivet av Rikoni:

Tjenare! jag skulle behöva hjälp med att översätta denna kod till pseudokod

public class sortpsuedokod {

public static void sortering(int[] a) {

boolean y = true;
while(y){
y=false;
for(int i=0; i < a.length-1; i++ ){
if(a[i] > a[i+1]){
y= true;
int temp = a[i+1];
a[i+1] = a[i];
a[i] = temp;
}
}
}
}

public static void main(String[] args) {
int[] a1= {7, 5, 8, 2};
sortering(a1);
for(int i = 0; i < a1.length; i++){
System.out.println(a1[i]);
}

}

}

vad är det du behöver hjälp med? Det är ju bara o skriva vad koden gör. du vet väl vad koden gör?

Visa signatur

Laptop - MacBook 2.0GHz, 4GB ram, Intel GMA 950
Stationär - i5 3570k @ 4ghz, 8gb ram, 120gb ssd + 2tb hdd, Windows 8 64bit, fractal design arc
Citera så jag hittar tillbaka :)

Permalänk
Medlem

Nej tyvär så vet jag inte det, jag suger på programmering och det är en skoluppgift, hjälp mig annars så får jag F

Permalänk
Medlem
Skrivet av Rikoni:

Nej tyvär så vet jag inte det, jag suger på programmering och det är en skoluppgift, hjälp mig annars så får jag F

Om vi ska gör aallt åt dig så förtjänar du ett F...
Du får själv försöka och visa vad du har gjort så kan vi hjälpa utifrån det.

Permalänk
Medlem

Okej jag försöker själv...

Permalänk
Medlem

Skriv vad du tror att den gör och sen om du har någon specifik fråga så kommer du säkert få ett svar här.

Visa signatur

Athlon XP 2100+ AIUHB 0302 | Epox 8RDA+ | 2x256MB Twinmos CL2 | Radeon 9500 @ 9700 Vcore & Vram mod | RIP

Permalänk
Medlem
Skrivet av Rikoni:

Nej tyvär så vet jag inte det, jag suger på programmering och det är en skoluppgift, hjälp mig annars så får jag F

"Kan någon göra mitt matteprov åt mig? Jag suger på matte och det är ett prov, hjälp mig annars så får jag F :)"

Vi tänker inte göra uppgiften åt dig. Du kan fråga om hjälp som gör att du lär dig vad koden gör, men du kan inte fråga om svaret.

Visa signatur

Programmerare -> PHP | HTML | CSS | JS | Java.

Permalänk
Medlem

Jag vet vad kod gör, koden sorterar våra tal och sätter det minsta talet först och det största talet sist, det är den första delen av koden som jag inte har så mycket koll på. jag vet ju också att det finns en arrey med i koden.

Permalänk
Medlem

Börja i början då, tex med:

boolean y = true;

while(y){
...
}

Visa signatur

Athlon XP 2100+ AIUHB 0302 | Epox 8RDA+ | 2x256MB Twinmos CL2 | Radeon 9500 @ 9700 Vcore & Vram mod | RIP

Permalänk
Medlem

Vad läser du för program/linje?

Visa signatur

7800X3D - 7900XTX - QD-OLED 34" AW3423DW

Permalänk
Medlem

Programmering 1 på teknik linjen

Permalänk
Medlem

Vilken specifik del är det du inte förstår?

Permalänk
Medlem

Det jag inte förstår är

for(int i=0; i < a.length-1; i++ ){
if(a[i] > a[i+1]){
y= true;
int temp = a[i+1];
a[i+1] = a[i];
a[i] = temp;

Permalänk
Medlem

Kolla upp i din bok för sorteringsalgoritmer, speciellt bubblesort. Borde stå något om det i boken om hur det fungerar.

Permalänk
Medlem

våran klass fick aldrig någon bok vi får bara snabba instruktioner på ca 2 min på projektorn av en mindre bra lärare som aldrig tar sig tiden att hjälpa oss.

Permalänk
Medlem

Kolla upp det på Wikipedia, mycket bra artikel på sorteringsalgoritmer där.

Visa signatur

Desktop: i5 2500K, 32GB RAM, Intel 330 60GB SSD, 1TB HDD, GTX 670, Fractal Design Arc, Arch Linux
Laptop: Asus U32u, Intel 330 60GB SSD, 8GB RAM, Arch Linux

Permalänk
Medlem

Läser själv den kursen och vill minnas att det fanns bra youtube videos om just bubblesort bara att söka

Visa signatur

MAIN:   | 4770k | r9 290 tri-x OC | 16GB | Be Quiet Shadow Rock 2 | Corsair 350D | EVGA Supernova G2 850w |
HTPC:   | 4360 | 8GB | Scythe Shuriken Rev. B | Cooler Master Elite 120 |
Laptop: HP spectre x360

Permalänk
Medlem

Okej tack

Permalänk
Medlem
Skrivet av Rikoni:

Nej tyvär så vet jag inte det, jag suger på programmering och det är en skoluppgift, hjälp mig annars så får jag F

Skrivet av Rikoni:

Jag vet vad kod gör, koden sorterar våra tal och sätter det minsta talet först och det största talet sist, det är den första delen av koden som jag inte har så mycket koll på. jag vet ju också att det finns en arrey med i koden.

Tro mig. Om du letar genvägar för att "fuska" dig till ett svar på din första uppgift så kommer du aldrig klara kursen oavsett. Du får ut så mycket mer om du försöker istället. Jag säger inte att vi inte hjälper dig, om du tar dig lite tid och gör ett försök och sedan frågar här efter hjälp så kan jag nästa lova dig att du får ett bra och vettigt svar tillbaka.

Börja med att studera varje enskild rad och översätt den till "svenska" så gott du kan och posta det här så tar vi det där ifrån.

Visa signatur

pfSense: GA-J1900N-D3V Quad-core Celeron 2GHz, Samsung 4GB, pfSense 2.2.2@USB
ESXi: i5 3470S, Gigabyte GA-B75N, Corsair XMS3 16GB, Intel PRO/1000 VT Quad GbE, Streacom F7C, ESXi@USB
Campfire Audio Lyra II, HiFiMAN HE-400, Yamaha EPH-100, Audioengine D1, FiiO E10

Permalänk
Medlem
Skrivet av Rikoni:

våran klass fick aldrig någon bok vi får bara snabba instruktioner på ca 2 min på projektorn av en mindre bra lärare som aldrig tar sig tiden att hjälpa oss.

Haha går du på danderyds gymnasium?

Visa signatur

CoreOS

Permalänk
Hedersmedlem
Skrivet av Rikoni:

Det jag inte förstår är

for(int i=0; i < a.length-1; i++ ){
if(a[i] > a[i+1]){
y= true;
int temp = a[i+1];
a[i+1] = a[i];
a[i] = temp;

Förstår du hur en for-loop fungerar? Förstår du vilka tal som jämförs? Har du klurat på vad som händer i de tre sista raderna?

Permalänk
Medlem

Ja ganska bra jag ska klura lite nu skriver snart vad jag tror.

Permalänk
Medlem

Jag vet att det är dom två första talen som jämförs , jag tror att en for-loop är en loop som körs och körs ända tills man har fått det rätta svaret eller sorterat rätt. Men dock inte helt säker på om det stämmer.

Permalänk
Medlem

boolean y = true; Från början är y sant
while(y){ men
y=false; men om y är falskt
for(int i=0; i < a.length-1; i++ ){ om i är större än a.lenght-1 så byter talen plats.

Stämmer detta ?

Permalänk
Medlem

Inte riktigt.

boolean y = true ; //Sätt y som sant while(y){ //Fortsätt sålänge y är sant for(int i=0; i < a.length-1; i++ ){ //Om i är mindre än a.length-1 så kör den eller fortsätter for-loopen.

EDIT: Det är just denna bit som byter plats på talen genom bubblesort.

if(a[i] > a[i+1]){ y= true; int temp = a[i+1]; a[i+1] = a[i]; a[i] = temp;

Permalänk
Medlem

Tack som fan

Permalänk
Medlem
Skrivet av Rikoni:

Jag vet att det är dom två första talen som jämförs , jag tror att en for-loop är en loop som körs och körs ända tills man har fått det rätta svaret eller sorterat rätt. Men dock inte helt säker på om det stämmer.

Det stämmer inte riktigt

for(int i=0; i < a.length-1; i++ ){
...
}

Denna loop körs så länge i < a.length-1
i initieras till 0 (dvs är noll från början) och inkrementeras med ett varje gång loopen körs (i++ är samma sak som i = i + 1, dvs i ökar med ett varje gång).

OBS: for-loopen KOMMER att köras a.length - 1 gånger oavsett ifall y blir deklarerad som false under körningen eller inte. Först EFTER for-loopen så kommer while(y) att testa för y och se ifall den blivit false eller inte.

Visa signatur

Athlon XP 2100+ AIUHB 0302 | Epox 8RDA+ | 2x256MB Twinmos CL2 | Radeon 9500 @ 9700 Vcore & Vram mod | RIP

Permalänk
Medlem

Jag kan bidra med ett annat exempel istället som kanske underlättar?

static void Main(string[] args) { int[] haystack = new int[] { 20, 45, 11, 12, 15, 666, 17, 101 }; int needle = 15; int index = -1; for (int i = 0; i < haystack.Length; i++) { if (needle == haystack[i]) { index = i; break; } } if (index < 0) Console.WriteLine(String.Format("The number {0} could not be found in the haystack.", needle)); else Console.WriteLine(String.Format("The number {0} was found at position {1} in the haystack.", needle, index)); Console.ReadKey(false); /********************************************************************************************************** * Running the program produces the following output: * * The number 15 was found at position 4 in the haystack. * *********************************************************************************************************/ }

Pseudokod för detta kan skrivas som följande:

Skapa integer array med namn Höstack som har följande värden: 20, 45, 11, 12, 15, 666, 17 och 101 Skapa integer med namn Nål som är följande: 15 Skapa integer med namn Index som är föjande: -1 Skapa integer med namn I som är följande: 0 Sökmotor: Om I är mindre än antalet element i Höstack hoppa till "Kontroll". Om I är större än eller lika med antalet element i Höstack hoppa till "SkrivUt" Kontroll: Kontrollera att värdet Nål har samma värde som Höstack element I, annars hoppa till "Nästa". Sätt värdet Index till värdet av I Hoppa till "SkrivUt" Nästa: Addera 1 till värdet av I. Hoppa till "Sökmotor" SkrivUt: Kontrollera att värdet av Index är mindre än 0, annars hoppa till "Hittat" Skriv ut "The number {0} could not be found in the haystack." där "{0}" ersätts med värdet av Nål. hoppa till "Slut" Hittat: Skriv ut "The number {0} was found at position {1} in the haystack." där "{0}" ersätts med värdet av Nål och "{1}" ersätts med värdet av Index. Slut: Vänta på att användaren trycker på en tangent...

Tilläggas kan att det är ganska överdrivet att beskriva det i sådan detalj. I många fall räcker det med mindre...

Te.x

Höstack array = 20, 45, 11, 12, 15, 666, 17, 101 Nål = 15 Index = -1 Loopa igenom alla element i Höstack, sätt I till aktuellt elementnummer. Om värdet av element nummer I är lika med värdet av nål, sätt värdet av index till värdet av I och sluta loopa. Skriv ut resultat... Vänta på tangent från användaren...

Men är man osäker (som i ditt fall) så kan det vara värt att utvärdera varenda liten detalj och skriva ner den.

Visa signatur

Chassi: Svart, PSU: 230 volt, Moderkort: Stort, CPU: Med fläkt, Minne: Tappat, GPU: Klarar MsPaint jättebra, Hårddiskar: Stor och liten, Mus: Med rullhjul, Tangentbord: Svenskt, Skärm: Platt