» »

Algoritmi - diagrami poteka

Algoritmi - diagrami poteka

Skaty ::

Dober večer.
Imam nekaj težav pri spodnji nalogi, zato vas prosim če mi pomagate. Hvala.

Nariši diagram poteka za algoritem, ki izpiše kvadrat z * 10x10.

elipsa-začetek
pravokotnik-stevec=1
romb=stevec< =10
če ne-romb-števec>10 | če da-pravokotnik-skok v novo vrstico ->(skok v 3. korak) | če ne-elipsa-stop
če da-paralelogram-izpiši *
pravokotnik-stevec++
nazaj v 3. korak.

A je to prav?

lebdim ::

če prav razumem, moraš ti narisati tole:

**********
**********
**********
**********
**********
**********
**********
**********
**********
********** ?

Skaty ::

Da.

lebdim ::

10x10 se ponovi, se pravi rabiš najmanj 2 zanki. jaz bi uporabil 2 zanki for

program zvezdice;
const N=10;
var i, j: integer;

begin
i:=1; j:=1;
writeln('Zvezdice: ');
for i:=1 to N do 
     begin
        for j:=1 to N do 
           begin
           write('*');
           end;
    writeln;
end;	
readln;
end.

Zgodovina sprememb…

  • spremenil: lebdim ()

Skaty ::

Hvala. A moje pol ni prav? :P

lebdim ::

to je koda, ki izriše, to kar želiš. sedaj pa to spravi v diagram poteka. seveda moraš pri tem vedeti, kako se v diagram poteka nariše for zanka.

Skaty ::

Če prav razumem sta i in j števca? For zanka-
a je prav recimo, da naredimo eno for zanko in pod false naredimo še eno?

lebdim ::

seveda. i in j sta števca, s katerima se sprehajaš po for zanki (od vrednosti 1 do konstante N, v tvojem primeru do 10, ker rabiš 100 zvezdic, 10x10).

tukaj moraš razmišljati takole:
- najprej se bo izvedla najbolj notranja zanka (zanka s števcem j) - riše po stolpcih
- nato se bo še izvedla zunanja zanka (zanka s števcem i) - riše po vrsticah

ti dve zanki ena znotraj druge, kar pomeni ugnezdeni zanki. ne razumem kaj meriš s "a je prav recimo, da naredimo eno for zanko in pod false naredimo še eno?".

Zgodovina sprememb…

  • spremenil: lebdim ()

Janac ::

#include <stdio.h>

int main (void)
{

	int iVisina;
	int iSirina;
	int iStevec_zvezdic;
	int iStevec_vrstic;
	

	do
	{
		printf("Vnesite visino pravokotnika:\n");
		scanf("%i", &iVisina);
		
		printf("Vnesite sirino pravokotnika:\n");
		scanf("%i", &iSirina);

	}while(!(iVisina>0)&&(iSirina>0));

	for(iStevec_vrstic=1;iStevec_vrstic<=iVisina;iStevec_vrstic++)
	{
		printf("/n/n");
	
	}
	for(iStevec_zvezdic=1; iStevec_zvezdic<=iSirina; iStevec_zvezdic++)
	{
		printf("*");
	}
	
	printf("Hvala za uporabo programa!");
	
	return (0);
	
}


lebdim, uspeš še tole pregledat? Naloga je pa sumljivo podobna.

Skaty ::

lebdnim: tisto sliko, ki sem jo "priložil" je na njej pač for zanka, ki ima dve veji pač Da pa Ne. Sprašujem pa če je prav če bi pod Ne vejo vstavil še eno tako zanko?

Math Freak ::

Lahko to narediš.

Math Freak ::

Jaz bi dal nekako tako:

1.) Elipsa(začetek)
2.) Pravokotnik(i=1)
3.) Pravokotnik(j=1)

4.) Romb(i<=10)
4a.) Ne: Elipsa(Konec)
4b.) Da: Romb(j<=10)

4ba1.) Ne: Pravokotnik(i++)
4ba2.) Pravokotnik(j=1)
4ba3.) Paralelogram(izpiši novo vrstico)
4ba4.) Nazaj na zanko 4

4bb1.) Da: Pravokotnik(j++)
4bb2.) Paralelogram(izpiši zvezdico)
4bb3.) Nazaj na zanko 4b

Zgodovina sprememb…

lebdim ::

Janac, tole prikaže tvoj programček ...

Janac ::

I know, I know..

lebdim ::

zakaj pišeš \n?
poskusi narediti tudi v C-ju, vendar pazi: enačaje pri zanki for mislim, da moraš dati stran. prepiši tisto kodo iz pascala v C, je tako težko?

Janac ::

Kakšen pascal :) ?

Tole sem spravil skupaj v C-ju :)

lebdim ::

ja, sej sem ti rekel: prepiši tisto kodo iz pascala, ki je dana gor v enem izmed postov v C. vidim, da si pisal v C-ju.

Skaty ::

Hvala vsem btw (:

Janac ::

lebdim je izjavil:

ja, sej sem ti rekel: prepiši tisto kodo iz pascala, ki je dana gor v enem izmed postov v C. vidim, da si pisal v C-ju.

Mi lahko le poveš, kje sem v moejm storil napako?

lebdim ::

1. ne vem, zakaj za prebranje dolžine in širine pravokotnika uporabiš do-while zanko? to je podatek, ki se ga samo enkrat prebere (torej brez zanke).
2. zakaj imaš ukaz printf("\n\n") v zanki?
3. za zvezdice ti manjka še ena zanka.
4. oz. tisto zanko, ki ti bere širino pravokotnika, jo popravi, in jo ugnezdi tako, da bosta dve for zanki.

Zgodovina sprememb…

  • spremenil: lebdim ()

mgermo ::

Janac...evo v Javi. Zdej pa konvertiraj.

import java.util.Scanner;

public class pravokotnik {

	public static void main (String args[])
	{
		Scanner input = new Scanner(System.in);
		System.out.println("Prosim vnesit visiino pravokotnika: ");
		int visina = input.nextInt();
		System.out.println("Prosim vnesit sirino pravokotnika: ");
		int sirina = input.nextInt();
		input.close();
		
			for(int i=0; i<visina;i++)
                        {		
				
					for(int j=0;j<sirina;j++)
						System.out.print("*");
					
			System.out.println();		
			}	
	}
}


p.s.: Pozicija enega { me je zajebavala pa sem moro n-krat popravit

Zgodovina sprememb…

  • spremenilo: mgermo ()

lebdim ::

torej, pravilna koda v C-ju, bi bila:
#include <stdio.h>
int main() {

int vis, sir, i=0, j=0;

printf("Vpisi dolzino pravokotnika: "); scanf("%i", &vis);
printf("Vpisi sirino prav"); scanf("%i", &sir);

for (i=0; i<vis; i++){

     for (j =0; j<sir; j++) {
     printf("*");
}
printf("\n");
}
}
system("PAUSE");
return(0);
}

lebdim ::

#include <stdio.h>
int main() {
 
int vis, sir, i=0, j=0;
 
printf("Vpisi dolzino pravokotnika: "); scanf("%i", &vis);
printf("Vpisi sirino pravokotnika: "); scanf("%i", &sir);
 
for (i=0; i<vis; i++){
 
     for (j =0; j<sir; j++) {
     printf("*");
}
printf("\n");
}
system("PAUSE");
return(0);
}

pravilna koda, eden } je bil preveč ...

Zgodovina sprememb…

  • spremenil: lebdim ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

NUJNO!Algoritmi C++

Oddelek: Pomoč in nasveti
211965 (1227) DOOM_er
»

Izris lika - ideja

Oddelek: Programiranje
233754 (2789) RatedR
»

Resne težave z razumevanjem osnov programiranja (strani: 1 2 )

Oddelek: Programiranje
8016600 (13112) RatedR
»

Diagrami poteka

Oddelek: Šola
202164 (1802) fx
»

Pomoč pri sestavi algoritma

Oddelek: Programiranje
369301 (8132) mihy11

Več podobnih tem