Skocz do zawartości
Zamknięcie Forum PC LAB

Szanowny Użytkowniku,

Informujemy, że za 30 dni tj. 30 listopada 2024 r. serwis internetowy Forum PC LAB zostanie zamknięty.

Administrator Serwisu Forum PC LAB - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie: wypowiada całość usług Serwisu Forum PC LAB z zachowaniem miesięcznego okresu wypowiedzenia.

Administrator Serwisu Forum PC LAB informuje, że:

  1. Z dniem 29 listopada 2024 r. zakończy się świadczenie wszystkich usług Serwisu Forum PC LAB. Ważną przyczyną uzasadniającą wypowiedzenie jest zamknięcie Serwisu Forum PC LAB
  2. Dotychczas zamowione przez Użytkownika usługi Serwisu Forum PC LAB będą świadczone w okresie wypowiedzenia tj. do dnia 29 listopada 2024 r.
  3. Po ogłoszeniu zamknięcia Serwisu Forum od dnia 30 października 2024 r. zakładanie nowych kont w serwisie Forum PC LAB nie będzie możliwe
  4. Wraz z zamknięciem Serwisu Forum PC LAB, tj. dnia 29 listopada 2024 r. nie będzie już dostępny katalog treści Forum PC LAB. Do tego czasu Użytkownicy Forum PC LAB mają dostęp do swoich treści w zakładce "Profil", gdzie mają możliwość ich skopiowania lub archiwizowania w formie screenshotów.
  5. Administrator danych osobowych Użytkowników - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie zapewnia realizację praw podmiotów danych osobowych przez cały okres świadczenia usług Serwisu Forum PC LAB. Szczegółowe informacje znajdziesz w Polityce Prywatności

Administrator informuje, iż wraz z zamknięciem Serwisu Forum PC LAB, dane osobowe Użytkowników Serwisu Forum PC LAB zostaną trwale usunięte ze względu na brak podstawy ich dalszego przetwarzania. Proces trwałego usuwania danych z kopii zapasowych może przekroczyć termin zamknięcia Forum PC LAB o kilka miesięcy. Wyjątek może stanowić przetwarzanie danych użytkownika do czasu zakończenia toczących się postepowań.

Temat został przeniesiony do archiwum

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

Hitm@n

[C] Algorytm - potrzebny na laborke

Rekomendowane odpowiedzi

Witam!

 

Potrzebuje algorytm do czegos takiego

 

wyznaczyc liczbe dodatnich elementow wczytywanego ciagu liczb gdy wczytywanie konczy sie po pojawieniu zera

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Witam!

 

Potrzebuje algorytm do czegos takiego

 

wyznaczyc liczbe dodatnich elementow wczytywanego ciagu liczb gdy wczytywanie konczy sie po pojawieniu zera

 

 

W C Ci nie napisze, ale mogę Ci podać ogólny zarys takiego "algorytmu".

 

inicjujesz zmienną typu prawda/fałsz lub liczbową (0 będzie odp. fałszowi, 1 prawdzie)

robisz pętlę while, warunek -> while(zmienna == true) - lub 1, jak tam sobie ustawisz.

w pętli wczytujesz liczbę z klawiatury do zmiennej. Jeśli jest dodatnia to:

- dodajesz do jakiejś zmiennej (sumy) 1

jeśli ujemna:

ustawiasz wartość zmiennej "zmienna" na 0 (lub fałsz).

 

Na sam koniec wypisujesz jaką ma wartość zmienna "suma". ;)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

int liczba,a=0;

 

 

for(int i=0;i==400;i++)

 

{

printf("podaj liczba");

scanf("%d",&liczba);

 

a++

if(tekst==0)

{

break;

}

 

}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

int liczba,a=0;

 

 

for(int i=0;i==400;i++)

 

{

printf("podaj liczba");

scanf("%d",&liczba);

 

a++

if(tekst==0)

{

break;

}

 

}

 

 

Według mnie ta pętla nie wykona sie ani razu. A jeśli chodzi ogółem o kod to no comment.

 

 

Pozdrawiam

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

@up nie tyle się nie wykona co w ogóle się nie skompiluje, a co do konstrukcji samej pętli to w warunku jest stała > 0, zatem będzie się wykonywać wiecznie, o ile coś wewnątrz petli jej nie przerwie.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość Push-up3k

A według mnie ktoś o zrobił na "odepe", ale wystarczy poprawić, bądź po prostu dokończyć program i będzie ok.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

jeśli ujemna:

ustawiasz wartość zmiennej "zmienna" na 0 (lub fałsz).

A niby czemu?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Witam!

 

Potrzebuje algorytm do czegos takiego

 

wyznaczyc liczbe dodatnich elementow wczytywanego ciagu liczb gdy wczytywanie konczy sie po pojawieniu zera

 

Czy to ma być wczytywanie z pliku czy z klawiatury?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

sorry pisałem na lekcji :P

 

 

int liczba,a=0;


for(int i=0;i<400;i++)

{
printf("podaj liczba");
scanf("%d",&liczba);

    if(liczba>0)
     {
     a++
     }

    if(liczba==0)
     {
     break;
     }

}

printf("dodatnich: %d",a); 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Po 1. Konstrukcja if else byłaby wydajniejsza w tym wypadku.

Po 2. A jak użytkownik chce wczytać np, 500 cyfr?

 

Ja polecam instrukcje while, np. tak:

while (scanf("%d", &liczba) == 1 && liczba != 0)
{ /*dalsza czesc kodu*/ }

I wystarczy wtedy już sam jeden if bez else.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość Push-up3k

Po 2. A jak użytkownik chce wczytać np, 500 cyfr?

Przerobienie na pętlę 'nieskończoną' nie powinno być problemem.

 

#include <iostream>
#include <conio.h>

using namespace std;

int main() 
{        
int liczba=666, a=0, i=111;


for(i=111;i>0;i++)

{
printf("podaj liczba");
cin>>liczba;

    if(liczba>0)
     {
     a++;
     }

    if(liczba==0)
     {
     break;
     }

}

printf("dodatnich: %d",a); 
system ("pause");
return 0;

}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
#include <stdio.h>
main(){int a,s=0;for(;scanf("%d",&a)&&a;a>0?++s:0);printf("%d\n",s);}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jako że nie znana jest liczba obiegów pętli najlepiej będzie zastosować pętle while lub do...while, np coś takiego:

 

int main(){
   int tmp = 0;
   int suma = 0;

   do{
       printf("Podaj liczbe: ");
       scanf("%d", &tmp);

       if(tmp > 0) suma += tmp;
   }while(tmp != 0);

   printf("\nSuma elementow dodatnich wynosi %d.\n", suma);
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

  • Tematy

  • Odpowiedzi

    • Ciekawy filozoficzny post, ja to odbieram inaczej - 9800X3D potrafi być 30% szybszy od 7800X3D i to przyrost w 18 miesięcy. Jeżeli upgrade dokonujesz w tej samych "widełkach" wydajnościowych zmieniajac starsze i5 na nowsze i5 to przyrost potrafi być przez 2 lata mniejszy niż nawet 5% za to energetycznie bywa że jest 30% lepiej, ostatecznie jest to jakaś ewolucja - pamiętaj że rozwój technologii jest iteratywny i polega na małych przyrostach które ostatecznie składają się na coś wielkiego ale ostatecznie masz rację - i7-2600 do dzisiaj może stanowić podstawę użytecznego komputera biurowego, skylake posłuszy pewnie i do 2030 w takich celach. Rasteryzacja w kartach graficznych faktycznie stoi nieco w miejscu, nVidia próbuje zrewolucjonizować rynek vendorlockowymi technikami jak swoje DLSSy, ostatecznie doprowadzi to do stagnacji gdzie bez zamydlonego ekranu nie pogramy w 4K, silniki graficzne też nie rozwijają się w oczekiwanym tempie - unity rozpadło się przez kiepski zarząd, unreal engine 5 to król mikroopóźnień, od zakończenia akceleracji sprzętowej dźwięku w windows vista (okolice 2007) nie było w audio żadnej rewolucji a wręcz ewolucji - id Tech to do dzisiaj jedyny engine który potrafi wyrysować łuk a nie koła z nakładanych trójkątów... Także sygnałów że branża kuleje nigdy nie brakowało - grunt to realizować swoje cele i jak tak jak ja od lat 2000 celujesz w średnią półkę cenową - szukać takich upgrade które faktycznie coś dają no i mieć świadomość że rtx 5090 to będzie 600w potwór z gddr7 i ceną na poziomie 12000 pln, takiej wydajności w kartach do 2000zł nie zobaczymy do 2030r. Pamiętam WOW jakie zrobił na mnie Teoria Chaosu splinter cella (mądrze zaprogramowana gra działająca również na konsolach) Far Cry 1 (był nieziemski na premierę) Crysis wyrywał z butów (8800gtx ledwo dawał radę), wszystko potem to sidegrade z momentami które pokazywały że 200 mln usd budżetu może dać jakościowy tytuł jak Red Dead 2, przez ostatnie 20 lat dobrych gier pctowych nie brakowało ale większość to ciągły sidegrade niepotrzebujący najmocniejszych sprzętów, dobieranie timingów pamięci to zawsze była nieco sztuka dla sztuki
    • Na ITH podobna wolność słowa jak na X/Twitterze. No cóż, trzeba będzie po prostu listę ignorowanych wydłużyć  
    • Tak, ale są związane z usługą udostępnienia platformy z ramienia podmiotu X. W tym wypadku RASP. Jeśli treść, nawet przerobioną na anonimową, przetwarzać zacząłby ktoś inny, nie wiem czy przypadkiem nie potrzeba uzyskać ponownie zgody na przetwarzanie wtórne/dziedziczne. Być może bezpośrednio z RASP, ale już stwierdzono, że nie ma takiej opcji. Głośno myślę jedynie, nie wczytywałem się tak głęboko w przepisy. Ok, ale co jeśli posty zawierają informacje mogące przyczynić się do ustalenia tożsamości piszącego/piszących? Tu już robi się niestety grubiej.    
    • Ja odpowiem bo nie wybieram się na tamto forum. Zależy czy masz boxy, gwarancję i jak szybko chcesz sprzedać ale coś koło 2100.
    • Polecam zapytać na Forum ITHardware.pl tutaj już raczej nikt ci nie odpowie, to forum się zamyka i wszyscy przeszli na ith.   @MuziPL .
  • Aktywni użytkownicy

×
×
  • Dodaj nową pozycję...