logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Prosty program w C - Zadanie domowe - ktoś mi pomoze? ;)

smoker 04 Sty 2006 19:44 3992 12
REKLAMA
  • #1 2146491
    smoker
    Poziom 18  
    Posty: 394
    Pomógł: 4
    Ocena: 5
    Witam! Dostałem zadanie domowe z infy, do napisania mam program w C, który w trybie tekstowym będzie rysował "choinkę" z gwiazdek. Choinka ma wyglądać tak:

    ____*
    ___*** 1 segment
    ____*
    ___***
    __***** 2 segment
    ____*
    ___***
    __*****
    _******* 3 segment itd...

    gdzie liczba segmentów, bedzie podana przez użytkownika. Zamiast "_" powinny być spacje. Najlepiej, żeby program napisany był przy uzyciu pętli for, albo while, zeby nie było ze używam jakichś komend, których nie miałem na lekcji ;P
    Z góry dzięki za pomoc!
  • REKLAMA
  • Pomocny post
    #2 2147154
    Faust
    Poziom 17  
    Posty: 135
    Pomógł: 22
    Ocena: 4
    #include<stdio.h>
    #include<windows.h>
    
    int main()
    {
    	int segmenty;
    	do
    	{
    		printf("Podaj ilosc segmentow: ");
    		fflush(stdin);
    	}
    	while(!scanf("%d",&segmenty));
    	system("cls");
    	for(int i=0;i<segmenty;i++)
    		for(int j=0;j<i+2;j++)
    		{
    			for(int spacje=40-j;spacje>0;spacje--)printf(" ");
    			for(int gwiazdki=2*j+1;gwiazdki>0;gwiazdki--)printf("*");
    			printf("\n");
    		}
    	system("pause");
    	return 0;
    }
  • Pomocny post
    #3 2147157
    trebuch1
    Poziom 26  
    Posty: 823
    Pomógł: 84
    Ocena: 131
    Przepisz i przetestuj

    #include "stdafx.h"
    /***********************************/
    int CENTRUM = 40; // oś choinki; zmienna globalna
    /***********************************/
    int polka(int n) // funkcja budowania półki choinki
    {
    int spacje, gwiazdki;

    spacje = CENTRUM - n - 1; // obliczanie liczby spacji przed gwiazdkami
    gwiazdki = ((n-1)*2)+1; // obliczanie liczby gwiadek w polce

    putchar('\n');
    for(n=0; n<spacje; n++) putchar(' '); // pisanie poprzedzających spacji
    for(n=0; n<gwiazdki; n++) putchar('*'); // pisanie gwiazdek
    return(0);
    }
    /***/
    int segment (int n) // funkcja budowania segmentu choinki
    {
    int a;
    if (n==1) return(0);

    for(a=1; a<=n; a++) polka(a); // budowanie segmentu choinki

    return(0);
    }
    /***************************************/


    int main(int argc, char* argv[])
    {
    int n, a;
    char linia[20];

    // wczytywanie ilości segmentów
    printf("Podaj ilość segmentów choinki:");
    gets(linia); n= atoi(linia);

    // budowanie choinki o n segmentach
    for (a=1; a<=n; a++) segment(a);

    // zakonczenie programu
    putchar('\n');
    return 0;
    }
    // koniec programu

    Uwagi! Tekst musisz dostosować do wymogów Twojej instalacji C++
    Ja go testowałem i pieknie na ekranie budowała się choineczka.
    Zauwaz ze jest ona sparametryzowana i prościej tego nie zrobisz.
  • #4 2147368
    Chustek
    Poziom 1  
    Posty: 1
    a moze ktos sie nudzi i pomoze tez mi??:) zadanie jest w pliku dolaczonym do postu,z gory dziekuje
    ps. nie chodzi mi o to zeby zrobic caly program tylko o to ze w tym zadaniu mozna obliczyc wszsykto metoda podstawienia w postaci funk liniowej,a jest ona w postaci hiperbolicznej i tu mam problem...
    Załączniki:
    • Prosty program w C - Zadanie domowe - ktoś mi pomoze? ;) zad.jpg (48.5 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #5 2148906
    smoker
    Poziom 18  
    Posty: 394
    Pomógł: 4
    Ocena: 5
    Dzięki Faust, chociaż miało być w c a nie cpp, ale sobie juz przerobiłem sam :]. Trebuch1 - też dzięki, ale z takim programem by nie przeszło - teacher by się połapał, ze to nie ja robiłem ;). Przynajmniej mi uratowaliście 4ry litery ;)



    A jeszcze kumpel mnei prosił o pomoc :D Jego zadanie brzmi tak:

    System bankowy zamienia liczby dziesiętne na słowne za pomocą 3 literowych skrótów liczb, np. 2750 - dwasiepiezer. Napisz program zamieniający podaną liczbę na system bankowy.

    Z góry dzięki za pomoc :D
  • REKLAMA
  • Pomocny post
    #6 2149188
    Faust
    Poziom 17  
    Posty: 135
    Pomógł: 22
    Ocena: 4
    #include<stdio.h>
    #include<windows.h>
    
    int main()
    {
    	char slowa[10][4]={{"zer"},{"jed"},{"dwa"},{"trz"},{"czt"},{"pie"},{"sze"},{"sie"},{"osi"},{"dzi"}};
    	char liczba[11];
    	printf("Podaj liczbe(max 10 cyfr): ");
    	scanf("%10s",liczba);
    	for(int i=0;liczba[i]!=0;i++)
    	{
    		if(liczba[i]<0x30 || liczba[i]>0x39)
    		{
    			printf("\nBledne dane");
    			printf("\n");
    			system("pause");
    			return 0;
    		}
    	}
    	for(int i=0;liczba[i]!=0;i++)
    		printf("%s",slowa[liczba[i]-0x30]);
    	printf("\n");
    	system("pause");
    	return 0;
    }
    
  • REKLAMA
  • #7 2149733
    smoker
    Poziom 18  
    Posty: 394
    Pomógł: 4
    Ocena: 5
    Dzięki Faust, za ponowną pomoc, za to zadanie mam u kumpla piwo - chętnie się nim podzielę :D



    No i się zaczęło - kolejne zadanie....

    Napisz program, który sprawdza czy liczbę calkowita n podaną przez użytkownika, mozna przedstawic w postaci sumy dwóch liczb pierwszych.

    Naprawdę wybaczcie zawracanie głowy, ale na ostatni dzień całej klasie się przypomniały zadania, a mało kto zna takie fachowe fora :D

    Jak zwykle dziękuję z góry :)
  • #8 2152719
    Słabyinformatyk
    Poziom 11  
    Posty: 7
    Ocena: 7
    Ja też poproszę o zadanie w języku c++

    Napisz program wypełniający kwadratową tablicę po spirali.
    Oto rysunek :

    1 2 3 4 5
    16 17 18 19 6
    15 24 25 20 7
    14 23 22 21 8
    13 12 11 10 9





    Michał też komuś załatwia zadania :)

    Wielkie dzięki z góry :D
  • #9 2153313
    smoker
    Poziom 18  
    Posty: 394
    Pomógł: 4
    Ocena: 5
    I kolejne zadnia ;P Byłbym wdzięczny :D

    1. Napisz program odczyta podana liczbe naturalną i utworzy druga liczbe naturalna zlozona z cyfr czytanych od konca.

    2.Napisz program, który wczyta dwie dwucyfrowe liczby zapisane przez Jasia, obliczy ich sumę i wypisze w postaci, w jakiej zapisałby ją Jaś, a następnie przetłumaczy to działanie na język bardziej zrozumiały dla mamy Jasia. (Tego zadanie totalnie nie czaję, ale takie jest polecenie :()

    3. Dana jest liczba calkowita "a" od 2 do 1000. Napisz program wyznaczający ilosc dzielnikow liczby "a".

    4. Napisz program, który odczyta podana liczbe naturalną i utworzy druga liczbe naturalna zlozona z cyfr czytanych od konca.


    Jak zwykle dzięki z góry!!
  • Pomocny post
    #10 2153356
    Faust
    Poziom 17  
    Posty: 135
    Pomógł: 22
    Ocena: 4
    smoker napisał:
    Napisz program, który sprawdza czy liczbę calkowita n podaną przez użytkownika, mozna przedstawic w postaci sumy dwóch liczb pierwszych.

    #include <stdio.h>
    #include <windows.h>
    int main()
    {
    	int liczba;
    	do
    	{
    		printf("Podaj liczbe: ");
    		fflush(stdin);
    	}
    	while(!scanf("%d",&liczba));
    	for(int liczba1=1;liczba1<liczba;liczba1+=2)
    	{
    		for(int f=liczba1/2;f>1 || liczba1==2 || liczba1==3;f--)
    		{
    			if(liczba1%f==0 && liczba1!=2 && liczba1!=3) break;
    			if(f==2 || liczba1==2 || liczba1==3) 
    			{
    				for(int liczba2=1;liczba2+liczba1<=liczba;liczba2+=2)
    				{
    					for(int g=liczba2/2;g>1 || liczba2==2 || liczba2==3;g--)
    					{
    						if(liczba2%g==0 && liczba2!=2 && liczba2!=3)break;
    						if(g==2 || liczba1==2 || liczba1==3)
    						{
    							if(liczba1+liczba2==liczba)
    							{
    								printf("\n%d + %d = %d\n",liczba1,liczba2,liczba);
    								system("pause");
    								return 0;
    							}
    							break;
    						}
    					}
    					if(liczba2==1)liczba2=0;
    					if(liczba2==2)liczba2=1;
    				}
    				break;
    			}
    		}
    		if(liczba1==1)liczba1=0;
    		if(liczba1==2)liczba1=1;
    	}
    	printf("\nPodanej liczby nie można przedstawic w postaci sumy dwoch liczb pierwszych\n");
    	system("pause");
    	return 0;
    }

    Chyba przekombinowałem. Program wyszukuje 2 liczby pierwsze następnie je dodaje i sprawdza czy ta suma jest równa naszej liczbie, jak tak to jest wyświetla.
  • #11 2153379
    dziqus
    Poziom 18  
    Posty: 208
    Pomógł: 17
    Ocena: 15
    no bez przesady, jak sie wam nie chce uczyc to moze wogole zrezygnujcie ze szkoly...
  • #12 2153605
    smoker
    Poziom 18  
    Posty: 394
    Pomógł: 4
    Ocena: 5
    I jeszcze jedno:

    W 1772 Euler napisał prosty ale ciekawy wzór funkcji w(x)=x2+x+41. Dla kazdego x nalezacego do <0,39> otrzymana ze wzoru wartosc w(x) jest liczba pierwsza. Dany jest przedział domkniety od p do q. wypisz wszystkie te wartosci całkowite x z tego przedziału dla których wartosc W(x) jest liczbą pierwsza.

    Dziqus - Nie ze nie chce nam sie uczyć, ale czas nagli, a to inna sprawa, my mamy C dopiero 2 miesiące, i napisanie takiego programu to co najmniej 2-3h (dla nas ;P):/

    ale to się już więcej nie powtórzy, pogonie wszystkich do roboty ;P
  • #13 2163330
    smoker
    Poziom 18  
    Posty: 394
    Pomógł: 4
    Ocena: 5
    Oki temat uważam za zamkniety, upłynął termin oddania pracy. Dzięki wszystkim co mi pomogli!!!

Podsumowanie tematu

✨ Dyskusja dotyczy zadania domowego polegającego na napisaniu w języku C programu rysującego w trybie tekstowym choinkę z gwiazdek, gdzie liczba segmentów jest podawana przez użytkownika. Uczestnicy zaproponowali rozwiązania wykorzystujące pętle for i while, z przykładami kodu obliczającego liczbę spacji i gwiazdek dla każdego segmentu oraz funkcje budujące poszczególne "półki" i segmenty choinki. Wskazano, że program powinien być prosty i oparty na konstrukcjach znanych z lekcji. W trakcie dyskusji pojawiły się także inne zadania programistyczne, m.in. konwersja liczby na system bankowy z trzyliterowymi skrótami cyfr, sprawdzanie, czy liczba całkowita może być sumą dwóch liczb pierwszych, oraz generowanie liczb pierwszych według wzoru Eulera. Autor potwierdził, że samodzielnie przerobił kod na czysty C i podziękował za pomoc. Dyskusja zakończyła się potwierdzeniem zamknięcia tematu po upływie terminu oddania pracy.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA