Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Γιατί πρέπει να τυπώνονται παράθυρα σε ύψος μεγαλύτερο του 5 ή του 6; Το ύψος των παραθύρων στην εκφώνηση αναφέρεται ως 3. Το μόνο ζήτημα είναι αν συμπεριλαμβάνεται ή όχι η οροφή. Στο σχήμα φαίνεται ότι συμπεριλαμβάνεται. Εγώ καταλαβαίνω ότι πρέπει να τυπώνεται λαμαρίνα όπως στο παρακάτω σχήμα. (23 μήκος, 6 ύψος)

image.png.68e1e5c17eaa31073796a44cb8ac7f3c.png

Επίσης κατά την εισαγωγή των τιμών μήκους, ύψους, θα πρέπει να γίνεται έλεγχος (εκτός από το ελάχιστες επιτρεπόμενες τιμές) για το μήκος. Θα πρέπει να λαμβάνεται υπόψιν ότι τα παράθυρα (όσα βγαίνουν), έχουν ακριβώς μήκος 4. Το υπόλοιπο της διαίρεσης του (μήκους - 3) με το 4 θα πρέπει να είναι μηδέν. Διαφορετικά το μήκος δεν πρέπει να γίνεται αποδεκτό.

Δημοσ.
25 λεπτά πριν, marios28 είπε

Γιατί πρέπει να τυπώνονται παράθυρα σε ύψος μεγαλύτερο του 5 ή του 6; Το ύψος των παραθύρων στην εκφώνηση αναφέρεται ως 3. Το μόνο ζήτημα είναι αν συμπεριλαμβάνεται ή όχι η οροφή. Στο σχήμα φαίνεται ότι συμπεριλαμβάνεται. Εγώ καταλαβαίνω ότι πρέπει να τυπώνεται λαμαρίνα όπως στο παρακάτω σχήμα. (23 μήκος, 6 ύψος)

image.png.68e1e5c17eaa31073796a44cb8ac7f3c.png

Επίσης κατά την εισαγωγή των τιμών μήκους, ύψους, θα πρέπει να γίνεται έλεγχος (εκτός από το ελάχιστες επιτρεπόμενες τιμές) για το μήκος. Θα πρέπει να λαμβάνεται υπόψιν ότι τα παράθυρα (όσα βγαίνουν), έχουν ακριβώς μήκος 4. Το υπόλοιπο της διαίρεσης του (μήκους - 3) με το 4 θα πρέπει να είναι μηδέν. Διαφορετικά το μήκος δεν πρέπει να γίνεται αποδεκτό.

Εσύ το βλέπεις 3 εγώ H-3

  • Like 1
Δημοσ.

Μια και πέρασαν κάμποσες ημέρες, παρακάτω είναι μία εκδοχή με πίνακα που ανέφερα σε προηγούμενο μήνυμά μου.

#include <stdio.h>
#include <string.h>

#define L 23
#define H 5

int main(void)
{
    int i, j;
    char bus[H][L];
    int middle;

    /* To megalutero meros tou leoforeiou exei * opote gemizoume me thn mia
       oloklhro ton pinaka me * kai meta sxediazoume apla tis allages */
    memset(bus, '*', sizeof(bus));

    middle = (L - 12) / 2;
    /* Portes */
    for (i = H - 2; i <= H - 1; i++) {
        bus[i][L - 1 - 2] = '_';
        bus[i][L - 1 - 1] = '_';
        bus[i][5 + middle] = '_';
        bus[i][5 + middle + 1] = '_';
    }
    /* Rodes */
    bus[H - 1][4] = '(';
    bus[H - 1][5] = ')';
    bus[H - 1][L - 1 - 5] = '(';
    bus[H - 1][L - 1 - 4] = ')';


    /* Para8uro - Parmpriz */
    for (i = 1; i <= H - 3; i++) {
        for (j = 3; j < L - 1; j++) {
            bus[i][j] = '_';
        }
        bus[i][j] = '|';
    }

    /* Emfanisi me tin mia tou telikou pinaka */
    /* 8a mporousame episis na ekxorisoume mnimi gia L + 1 theseis ston pinaka
       oste na exoume \0 stin kathe grammi tou leoforeiou kai na kanoyme
       apla printf("%s" anti gia ena-ena xaraktira */
    for (i = 0; i < H; i++)
    {
        for (j = 0; j < L; j++)
        {
            printf("%c", bus[i][j]);
        }
        printf("\n");
    }
    printf("\n");
}

Όπως είπα και τότε, ένα θετικό της χρήσης πίνακα είναι ότι μπορούμε να σχεδιάσουμε το σχήμα όπως μας έρχεται πιο εύκολα στο μυαλό αντί να είμαστε αιχμάλωτοι να το εμφανίσουμε με την σειρά.

% cc -Wall -O2 bus.c && ./a.out

***********************
***___________________|
***___________________|
**********__********__*
****()****__*****()*__*

Μια και το επιτρέπει η άσκηση, την πίσω πόρτα την έβαλα να μπαίνει πάντα στην μέση για να είναι πιο όμορφο σαν σχήμα αλλά από ό,τι είδα στο google, όλα τα λεωφορεία είχαν την πόρτα ακριβώς μπροστά από την πίσω ρόδα ανεξαρτήτως μεγέθους.

Δημοσ. (επεξεργασμένο)

Τήν Τρίτη είναι η τελευταία προθεσμία παράδοσης της εργασίας.

Πού ρώτησα τον καθηγητή, είπε προσπαθήστε με For . Πίνακες δέν μάς έχει παραδώσει, προχωρήσαμε στήν εντολή while.

Για τήν 1η άσκηση αφού έκανα κάποιες αλλαγές για να καταλάβω πως δουλεύει ο κώδικας και να ξέρω να την εξηγήσω .

Δούλεψα και έκανα τις αλλαγές πάνω σε αυτό το κώδικα που είχε γραφτεί κάποια μηνύματα προηγουμένως 

#include <stdio.h>
int main()
{
	int L; 
	int H;
	printf("Type Height: ");
	scanf("%d",&H);
	printf("type Length: ");
	scanf("%d",&L);

	for ( int i = 0; i < L; i++)
	{
		printf("*");
	}
	
	for (int i = 0; i < H-3; i++)
	{
		printf("***\n");
		for (int j = 0; j < L-4; j++)
		{
			printf("-");
		}
		printf("|");
	}
	
	printf("\n");
	for (int i = 0; i < L; i++)
	{
		if(i == 8 || i == 9 || i==L-2 || i == L-3)
		{
			printf("_");
		}
		
		else
		{
			printf("*");
		} 
	}

	printf("\n");
	for (int i = 0; i < L; i++)
	{
		if(i == 4 || i == L-5)
		{
			printf("(");
		}
		else if(i == 5 || i == L-4)
		{
			printf(")");
		}
		else if(i == 8 || i == 9 || i==L-2 || i == L-3)
		{
			printf("_");
		}
		else
		{
			printf("*");
		}
	}



	printf("\n");
	return 0;
}

Τώρα προσπαθώ το 2ό μέρος τής άσκησης που έχει να φτιάξουμε 1 αμαξοστοιχία

Μέχρι στιγμής έχω κάνει το εξής για το 2ο ερώτημα , θα τήν προσπαθήσω με for

int main()
{
	int N; 
	int WH;
	int WL;
	int CCL;
	printf("type Number of Wagons: ");
	scanf("%d",&N);
	printf("Type Height: ");
	scanf("%d",&WH);
	printf("type Length: ");
	scanf("%d",&WL);
	printf("type Length of Corridor connection: ");
	scanf("%d",&CCL);
	

Πάντως αρκετά άτομα έχουν δυσκολευτεί με τη συγκεκριμένη εργασία,

άσκηση 2.PNG

Επεξ/σία από meletis_m
Δημοσ.

 //Λείπουν οι έλεγχοι. Αν θες τους βάζεις. Βάλε παρενθέσεις όπου χρειάζεται για να είναι πιο κατανοητές οι πράξεις.

#include <stdio.h>

int main()
{
	int N; 
	int WH;
	int WL;
	int CCL;
	printf("type Number of Wagons: ");
	scanf("%d",&N);
	printf("Type Height: ");
	scanf("%d",&WH);
	printf("type Length: ");
	scanf("%d",&WL);
	printf("type Length of Corridor connection: ");
	scanf("%d",&CCL);
    
    	int Length = WL * (N + 1) + (N * CCL) + 2;

    	//kaminada 3 seires
	for ( int i = 0; i < Length; i++)
	{
	    if(i == Length - 4)
	     	printf("\\");
	    else if (i == Length - 3)
	    	printf("/");
	    else
	        printf(" ");
	}
	
	printf("\n");
	
    	for ( int i = 0; i < Length; i++)
	{
		if(i == Length - 2 - WL  || i == Length - 2 - WL + 1 || i == Length - 2 - WL + 2 || i == Length - 2 - WL + 3)
		    printf("_");
		else if(i == Length - 4 || i == Length - 3)
	     	    printf("|");
	        else
	            printf(" ");
	}
	
	printf("\n");
	
        for ( int i = 0; i < Length; i++)
	{
		if(i == Length - 2 - WL  ||  i == Length - 2 - WL + 3 || i == Length - 4 || i == Length -3)
		    printf("|");
	        else
	            printf(" ");
	}
	
	//bagonia ektos apo tin teleutaia seira
	printf("\n");
	
	for (int j = 0; j < WH-1; j++)
	{	
	        int count = 0;

		for ( int i = 0; i < Length - 2; i++)
		{
	            if(count == WL+CCL)
			 count = 0;
				    
		    if(count>=WL)			
		         printf(" ");
		    else
		         printf("*");
		   
		    count++;				
		}
		
		if(j == WH-2)
		   printf("*");
		   
		printf("\n");
	}
	
	//teleutaia seira bagoniwn
	for ( int i = 0; i < Length; i++)
	{
		printf("*");
	}
	
	//rodes
        printf("\n");
    
        int count = 0;
	for ( int i = 0; i < Length - 2; i++)
	{
	        if(count == WL+CCL)
		    count = 0;
			    
	        if(count==1 || count==WL-3)				
	            printf("(");
	        else if(count==2 || count==WL-2)
	            printf(")");
		else
	            printf(" ");
		
                count++;		
	}

	printf("\n");
	
}

 

  • 4 μήνες μετά...
Δημοσ.

Κάποιος «γραμματισμένος» ενοχλήθηκε πάλι...

1625585072_.PNG.2142015d4eb8d67e207b92aa11071ea4.PNG

Δημοσ.

Έτσι...

2056216396_1.PNG.d90d84c9669dfdcc273f0ea3b83b8a19.PNG

...συνέχισε, καλά το πας!

Τώρα υπάρχει και 2η γλάστρα στον κήπο του forum ... ή μήπως 2ος λογαριασμός??

Γελάστε όσο θέλετε... η εικόνα που δίνεται προς τον έξω κόσμο είναι άθλια... γελάνε κι άλλοι.

 

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...