Strona 1 z 1

Skrypt na trójkąt prostokątny.

: 30 maja 2021, 11:24
autor: Kacper2701
Witam,

dostałem zadanie, na napisanie skryptu rysującego trójkąt prostokątny z gwiazdek. Ma on mieć 5 linijek wysokości, a w każdej linijce znajdować się jedna gwiazdka więcej- zaczynając od 1. Problem jest taki, że po prostu mi to nie wychodzi. Napisałem to tak- jak widać w załączniku. Ze wszystkich modyfikacji- tutaj wydaje mi się, że jest najbliżej celu, jednak nie jest idealnie.

Jakby ktoś jeszcze mógł mi wytłumaczyć, co ewentualnie napisałem źle- byłbym bardzo wdzięczny.

Pozdrawiam i z góry dziękuję.
skrypt1.png
(12.71 KiB) Nie pobierany
skrypt.png
(11.28 KiB) Nie pobierany

Re: Skrypt na trójkąt prostokątny.

: 30 maja 2021, 13:05
autor: mario_7
Problem nie jest trudny, a twój kod oczywiście błędny.

Zacznij od wklejenia kodu bezpośrednio do posta - tak będzie łatwiej.

Następnie opisz słowami co według ciebie ten twój kod robi w obecnej formie - myślę że to naprowadzi cię na błędy jakie popełniłeś.

Re: Skrypt na trójkąt prostokątny.

: 10 sie 2024, 18:39
autor: prymula
To zadanie jest bardzo popularne. Spotkałem kiedyś gościa, który w ten sposób miał przećwiczyć instrukcję 'for' w Javie. Co prawda odgrzeję za chwilę "czerstwy" kotlet, ale może dzięki temu przyczynię się do zdobycia przez kogoś upragnionego licencjatu. Tyle że moja wersja nie posiada w/w instrukcji.

Kod: Zaznacz cały

#!/usr/bin/env bash

branch="********************"
space="                                        "

function print_branch
{
  echo "${space:0:$3}${branch:0:$1}${branch:0:$2}"
  if [[ $4 -gt 0 ]]; then
    print_branch $(expr $1 + 1) $(expr $2 + 1) $(expr $3 - 1) $(expr $4 - 1)
  fi
}

echo " "
print_branch 0 1 20 10
echo " "
Pozdrawiam

Re: Skrypt na trójkąt prostokątny.

: 20 wrz 2025, 14:52
autor: auto_joker
Na magistra to może by wystarczył kod na całe 2 strony, ale oprawione w twardą okładkę.

Re: Skrypt na trójkąt prostokątny.

: 30 cze 2026, 19:15
autor: prymula
auto_joker pisze: 20 wrz 2025, 14:52 Na magistra to może by wystarczył kod na całe 2 strony, ale oprawione w twardą okładkę.
Mam rozpisać ten kod na dwie strony ? to praca kołchoźnika !
Spróbuj tego, nie trzeba nawet kompilować ;)

Kod: Zaznacz cały

/*
 * ASCII - choinka ze znaków
 * autor: PRP
 * licencja: GPL
 * edytor: Geany
 * 22-02-2022
 * 
 * po prostu uruchom przez:
 * java Ascii.java
 *  
 */

class Ascii {
	static class Sign {
		Sign(){}
		static void show(String s, int n, int max) {
	
			if (n < max) {
				System.out.print(s);
				++n;
				show(s, n, max);
			}
			return;
		}
	}
	static class Triangle extends Sign{
	
		static final int SPACE = 24;
		static final int max_lines = 8;
		public static int max_space = SPACE;
		public static int max_stars = 1;
		static boolean first = true;
		Triangle(){
		}
		static void show(int start, int n) {

			if (n < max_lines) {
				show(" ", start+1, max_space);
				show("*", start, max_stars);
				if (first == false)
					show("*", start+1, max_stars);
				first = false;
				max_space--;
				max_stars++;
				System.out.println("");
				++n;
				show(start, n);
			}
			return;
		}
	}
	static class Tree extends Triangle {
		static final int MAX_SEQUENCES= 3;
		static int l = 1; // degress left spaces
		static void print(int start, int n) {
			if (n < MAX_SEQUENCES) {
				show(start, 1);
				start--;
				max_space = SPACE-2*l;
				max_stars = 1;
				++n;
				l+=1;
				print(start, n);
			}
			return;
		}
	}
	
	
    public static void main (String args[]){
		Tree t = new Tree();
		final int START_SEQUENCES =0;
		final int GOOD = 0;
        System.out.println("");
        t.print(GOOD, START_SEQUENCES);
        System.out.println("");
    }
}