Skrypt na trójkąt prostokątny.

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Kacper2701
Piegowaty Guziec
Piegowaty Guziec
Posty: 1
Rejestracja: 30 maja 2021, 11:20
Płeć: Mężczyzna
Wersja Ubuntu: 20.04
Środowisko graficzne: Brak
Architektura: x86_64

Skrypt na trójkąt prostokątny.

Post 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
Awatar użytkownika
mario_7
Administrator
Administrator
Posty: 8691
Rejestracja: 30 sie 2006, 13:11
Płeć: Mężczyzna
Wersja Ubuntu: 26.04
Środowisko graficzne: GNOME
Architektura: x86_64

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

Post 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ś.
prymula
Sędziwy Jeż
Sędziwy Jeż
Posty: 33
Rejestracja: 06 sty 2023, 20:41
Wersja Ubuntu: inny OS
Architektura: ARM
Kontakt:

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

Post 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
https://prymula.ct8.pl
auto_joker
Sędziwy Jeż
Sędziwy Jeż
Posty: 57
Rejestracja: 18 maja 2015, 22:22
Płeć: Mężczyzna
Wersja Ubuntu: 24.04

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

Post autor: auto_joker »

Na magistra to może by wystarczył kod na całe 2 strony, ale oprawione w twardą okładkę.
prymula
Sędziwy Jeż
Sędziwy Jeż
Posty: 33
Rejestracja: 06 sty 2023, 20:41
Wersja Ubuntu: inny OS
Architektura: ARM
Kontakt:

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

Post 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("");
    }
}

https://prymula.ct8.pl
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Google [Bot] i 1 gość