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:
- 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
- Dotychczas zamowione przez Użytkownika usługi Serwisu Forum PC LAB będą świadczone w okresie wypowiedzenia tj. do dnia 29 listopada 2024 r.
- 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
- 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.
- 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ń.
Roundstic
-
Liczba zawartości
24 -
Rejestracja
-
Ostatnia wizyta
Odpowiedzi dodane przez Roundstic
-
-
chciałbym, aby mój skrypt wypisywał, jeżeli jakiś użytkownik nie jest zalogowany to informacje o tym, tak jak jest w treści zadania, bo narazie mój skrypt wylicza liczbę procesów, a jak ktoś jest niezalogowany to wypisuje 0, a chciałbym, żeby napisał "Użytkownik nie jest zalogowany"
-
Mam takie zadanie:
Napisać skrypt, który przyjmuje jako parametr login użytkownika jeśli jest zalogowany wyświetla jego liczbę procesów. Jeśli nie to komunikat.
i tak w skrypcie mam taki kod
ps -aux | grep^$1 | wc -l
I nie wiem jak zrobić, żeby skrypt sprawdzał, czy użytkownik jest zalogowany
-
Algorytm powinien wybierać najbardziej optymalną wartość, jednak czasami nie najbardziej opłacalną.
Droga w tablicy powinna wyglądać tak, że pierw idzie od dołu do samej góry i prawego rogu, a potem kolejne komórki powinien wybierać, albo z boku, albo z dołu w zależności od najmniejszej wartości.
Nową tablicę chciałem utworzyć na drogę
-
Zaimplementuj zachłanny algorytm poszukiwania drogi w podanej tablicy. Użytkownik podaje liczbę N, i tablicę liczb o wymiarach N x N. Program, z użyciem metody zachłannej, znajduje drogę z lewego dolnego rogu tablicy do prawego górnego rogu i jej koszt. Program wypisuje współrzędne kolejnych pól na drodze w tablicy. Po tablicy możemy poruszać się tylko do góry lub w prawo.
Przykład
Wejście
5
2 3 4 2 5
5 2 1 2 2
2 4 2 2 3
1 2 2 4 3
3 2 1 2 3
Przykładowe wyjście (może się różnić, w zależności od implementacji)
Koszt: 22
4 0
3 0
2 0
2 1
1 1
1 2
1 3
0 3
0 4
Sam napisałem jedynie, początek i nie wiem co dalej myślałem nad utworzeniem nowej tablicy
#include <iostream> using namespace std; int main() { int n; int T[100][100]; cout<<"Podaj liczbe: "; cin>>n; cout<<"Podaj tablice liczb: "<<endl; for(int i=0; i<n; i++) { for(int j=0; j<n; j++) { cin>>T[i][j]; } } int A[100][100]; -
Ok udało mi się napisać, dziękuję za pomoc.
-
Nie wiem jak to zrobić, żeby były wczytane nominały a ich liczbę podawał użytkownik
-
Zaimplementuj zachłanny algorytm wydawania reszty (w polskiej walucie) z ograniczoną liczbą nominałów. Danymi wejściowymi dla programu mają być - liczby dostępnych nominałów (1, 2, 5, 10, 20, 50, 100, 200, 500 PLN) oraz kwota do wydania (w pełnych złotych polskich). Jako wynik należy wypisać nominały użyte do wydania kwoty lub informację, że danej kwoty nie można wydać. Można założyć, że wszystkie podawane liczby zmieszczą się w typie int.
Przykład 1
Wejście
49
2 2 2 2 2 2 2 2 2
Wyjście
20 20 5 2 2
Przykład 2
Wejście
9
10 0 3 1 11 2 3 2 1
Wyjście
5 1 1 1 1
Narazie mam taki kod, ale nie wiem jak dodać te ograniczenia na liczbę nominałów
#include <iostream> using namespace std; int main() { int T[9]={500, 200, 100, 50, 20, 10, 5, 2, 1}; int liczba; cout<<"Podaj liczbe: "; cin>>liczba; for(int i=0; i<=8; i++) { while(liczba >= T[i]) { liczba = liczba - T[i]; cout<<T[i]; } } } -
A skrypt który przyjmuje jako parametr login użytkownika . Jeśli jest zalogowany wyświetla jego liczbę procesu, jeśli nie komunikat
-
Mam pare pytań odnośnie pisania skryptów.
Jak napisać skrypt podający liczbę zalogowanych użytkowników?
-
Sam nie chciałbym tak pędzić, bo nie mogę niczego zrozumieć porządnie, ale taki plan studiów jest, na każdych ćwiczeniach coś nowego... Jak ktoś jest po rozszerzonej informatyce to jest mu łatwo, ale ja wszystko od samych podstaw ogarniam.
Tablica A[n + 1][W + 1] tablica do wypełnienia, gdzie sumaryczna wartość przedmiotu w optymalnym rozwiązaniu pod problemu, w którym pojemność plecaka to W, a wybieramy spośród n przedmiotów.
W zagnieżdżonych pętlach sprawdzam, czy waga i-tego przedmiotu jest większa niż przestrzeń dostępna w plecaku jeśli tak to A[j]=A[i-1][j] to jak jakby tego i-tego przedmiotu nie było
jeśli nie to
wybieram większą z tych wartości
A[i -1][j] - odpowiada przypadkowi kiedy nie wybieram optymalnego rozwiązania i-tego przedmiotu
ci+ A[i-1][j-wi] odpowiada przypadkowi kiedy wybieramy do optymalnego rozwiązania i-ty przedmiot czyli wybieramy korzystniejszą z tych 2 wartości
Teraz tak działam na takich danych
W=5 n=4
wi=5 1 3 1 /wagi
i odpowiednio ceny
ci= 8 2 10 5 / ceny
i teraz w najlepszym przypadku wartość plecaka to 17, a mi wychodzi 798761
#include <iostream> using namespace std; int main() { int n;// przedmiotów int W; // pojemność plecaka/ waga cout<<" Podaj liczbę przedmiotów: "; cin>>n; cout<<" Podaj pojemność plecaka: "; cin>>W; cout<<"Wpisz wartosci przedmiotow: "; int c[10000];// cena przedmiotu for(int i = 0; i < n; i++)// kolejne liczby do tablicy { cin>>c[i]; } cout<<"Wpisz ile zajmują te przedmioty: "; int w[10000]; for(int i=0; i<n; i++) // kolejne elementy do tablicy { cin>>w[i]; } int A[n+1][W+1]; //tworzę tablice o odpowiednim rozmiarze n- liczba przedmiotów W - pojemność plecaka // Przypisuje 0 do pierwszego wiersza i pierwszej komulny tablicy A for(int i=0; i<=n; i++) { A[i][0]=0; } for(int i=0; i<=W; i++) { A[0][i]=0; } // W dwóch zagnieżdżonych pętlach przeglądam komórki tablicy A uzupełniając je odpowiednimi wynikami for(int i=1; i<=n; i++) { for(int j=1; j<=W; j++) { if(w[i]>j) { A[i][j]= A[i-1][j]; } else { A[i][j]=max(A[i-1][j], c[i]+A[i - 1][j - w[i]]); } } } cout<<A[n][W]; return 0; } -
To teraz to samo zadanie metodą dynamiczną( którą tak sobie ogarniam) coś źle mi liczy
#include <iostream> using namespace std; int main() { int n;// przedmiotów int W; // pojemność plecaka/ waga cout<<" Podaj liczbę przedmiotów: "; cin>>n; cout<<" Podaj pojemność plecaka: "; cin>>W; cout<<"Wpisz wartosci przedmiotow: "; int c[1000];// cena przedmiotu for(int i = 0; i < n; i++)// kolejne liczby do tablicy { cin>>c[i]; } cout<<"Wpisz ile zajmują te przedmioty: "; int w[10000]; for(int i=0; i<n; i++) // kolejne elementy do tablicy { cin>>w[i]; } int A[n + 1][W + 1]; //tworzę tablice o odpowiednim rozmiarze n- liczba przedmiotów W - pojemność plecaka // Przypisuje 0 do pierwszego wiersza i pierwszej komulny tablicy A for(int i=1; i<=W; i++) { A[i][0]=0; } for(int j=1; j<=n; j++) { A[0][j]=0; } // W dwóch zagnieżdżonych pętlach przeglądam komórki tablicy A uzupełniając je odpowiednimi wynikami for(int i=1; i<=W; i++) { for(int j=1; j<=n; j++) { if(w[j-1]>i) { A[i][j]= A[i][j-1]; } else { A[i][j]=max(A[i][j-1], c[j-1]+A[i - w[i-1]][j - 1]); } } } cout<<A[W][n]; -
Mam tak, jak chciałem w pętli dodać drugą pętlę while(W>=0) to już nie działało
#include <iostream> using namespace std; int ZnajdzMaksimum(double T[], int L, int P) { int indeks = L; for (int i= L +1; i<=P; i++) { if(T[indeks]<T[i]) { indeks = i; } } return indeks; } //**************************************************** void sortuj(double first[], double second[], int n) { int i; for(i=0; i<n; i++) { int indeks = ZnajdzMaksimum(first, i, n-1); swap(first[i], first[indeks]); swap(second[i], second[indeks]); } } int main() { int n;// przedmiotów double W; // pojemność plecaka/ waga double wartosc = 0;// wartosc plecaka przedmiotow w plecaku int sztuk = 0; // liczba sztuk która jest w plecaku cout<<" Podaj liczbę przedmiotów: "; cin>>n; cout<<" Podaj pojemność plecaka: "; cin>>W; cout<<"Wpisz wartosci przedmiotow: "; double p_wart[1000];// wartość przedmiotu; for(int i = 0; i < n; i++)// kolejne liczby do tablicy { cin>>p_wart[i]; } cout<<"Wpisz ile zajmują te przedmioty: "; double p_waga[10000]; for(int i=0; i<n; i++) // kolejne elementy do tablicy { cin>>p_waga[i]; } sortuj(p_wart, p_waga, n); for(int i=0; i<n; i++) { sztuk = W / p_waga[i]; W = W - sztuk*p_waga[i]; wartosc = wartosc + sztuk * p_wart[i]; } cout<<"Wartość plecaka to: "<<wartosc<<endl; return 0; } -
Wprowadziłem dodatkowo sortowanie, bo mam w zeszycie napisane, że możemy wybrać jedną z 2 opcji w tym zadaniu:
1. Pakowanie najcenniejszych. Lub
2. Pakowanie najmniejszych
tylko mam teraz problem, bo sortuje się jedynie wartość i przy tym gubi się odpowiednia waga przedmiotu
include <iostream> using namespace std; int ZnajdzMaksimum(double T[], int L, int P) { int indeks = L; for (int i= L +1; i<=P; i++) { if(T[indeks]<T[i]) { indeks = i; } } return indeks; } //**************************************************** void sortuj(double T[], int n) { int i; for(i=0; i<n; i++) { int indeks = ZnajdzMaksimum(T, i, n-1); swap(T[i], T[indeks]); } } int main() { int n;// przedmiotów double W; // pojemność plecaka/ waga double wartosc = 0;// wartosc plecaka przedmiotow w plecaku int sztuk = 0; // liczba sztuk która jest w plecaku cout<<" Podaj liczbę przedmiotów: "; cin>>n; cout<<" Podaj pojemność plecaka: "; cin>>W; cout<<"Wpisz wartosci przedmiotow: "; double p_wart[1000];// wartość przedmiotu; for(int i = 0; i < n; i++)// kolejne liczby do tablicy { cin>>p_wart[i]; } sortuj(p_wart, n); cout<<"Wpisz ile zajmują te przedmioty: "; double p_waga[10000]; for(int i=0; i<n; i++) // kolejne elementy do tablicy { cin>>p_waga[i]; } for(int i=0; i<n; i++) { sztuk = W / p_waga[i]; W = W - sztuk*p_waga[i]; wartosc = wartosc + sztuk * p_wart[i]; } cout<<wartosc; return 0; } -
Polecenie brzmi:
Zaprojektuj i zaimplementuj zachłanny algorytm pakowania plecaka. Dany jest plecak o pojemności 0 <= W <= 10000 oraz 0 <= n <= 10000 przedmiotów o wagach 1 <= w <= 10000 oraz wartościach 0 <= c <= 1000. Program ma wypisywać wartość zapakowanego plecaka.
Nie wiem, czy mój kod jest dobry, coś wylicza, ale czy najlepszą opcje to nie wiem
#include <iostream> using namespace std; int main() { int n;// przedmiotów double W; // pojemność plecaka/ waga double wartosc = 0;// wartosc plecaka przedmiotow w plecaku int sztuk = 0; // liczba sztuk która jest w plecaku cout<<" Podaj liczbę przedmiotów: "; cin>>n; cout<<" Podaj pojemność plecaka: "; cin>>W; cout<<"Wpisz wartosci przedmiotow: "; double p_wart[1000];// wartość przedmiotu; for(int i = 0; i < n; i++)// kolejne liczby do tablicy { cin>>p_wart[i]; } cout<<"Wpisz ile zajmują te przedmioty: "; double p_waga[10000]; for(int i=0; i<n; i++) // kolejne elementy do tablicy { cin>>p_waga[i]; } for(int i=0; i<n; i++) { sztuk = W / p_waga[i]; W = W - sztuk*p_waga[i]; wartosc = wartosc + sztuk * p_wart[i]; } cout<<wartosc; return 0; } -
#include <iostream> #include <cstring> using namespace std; bool CzyPalindrom(char napis[]) { int n = strlen(napis); for(int i= 0; i < n/2; i++) { if (napis[i] != napis[n-1-i]) //porownywanie liter { return false; } } return true; } int main() { char wyraz[100]; cout<<"Podaj wyraz do sprawdzenia: "; cin>>wyraz; cout<<CzyPalindrom(wyraz); return 0; }Może być tak?
-
Cześć mam kolejne zadanie w c++
Brzmi ono następująco:
Napisz funkcję czyPalindrom(...), która sprawdzi, czy podane przez użytkownika słowo jest palindromem. Funkcja ma zwracać wartość typu bool (true albo false).
Mam narazie taki kod, który nie działa:
#include <iostream> #include <cstring> using namespace std; bool CzyPalindrom(char napis[]) { int n = strlen (napis); for(int i= 0; i <= n/2; i++) { if (n[i] !== n[n-1-i]) //porownywanie liter { return false; } else { return true; } } } -
Dziękuję za odpowiedzi, komentarze są narazie dla mnie, bo w ten sposób lepiej zapamiętuje( uczę się c++ dopiero od miesiąca dlatego przepraszam za tak banale pytania/ błędy)
-
Mam takie coś
#include <iostream> using namespace std; int ZnajdzMinimum(int T[], int n)// nagłówek funkcji { int i;// licznik pętli int min; // minmum min=T[0];// przyjmuje, że minumum równa się pierwszemu elementowi w tablicy for(i=1; i<n; i++)//szukanie minumum { if(min>T[i]) { min=T[i]; } } return min; //zwrócenie wartości } int main() { int m; //liczba elementow int T[100]; cin>>m; //wczytanie danych for(int i=0; i<m; i++)//kolejne dane do tablicy { cin>>T[i]; } cout<<"Minimum to: "<<ZnajdzMinimum(T, m); return 0; } -
Dzięki, to mam teraz kolejne pytanie chyba związane nadal z tym tematem, dlatego nie będę tworzył nowego.
Zadanie brzmi:
Napisz funkcję znajdzMinimum(...), która wśród elementów tablicy (wczytanych uprzednio od użytkownika) znajdzie element minimalny.
Wersja I:
Program ma wypisywać znaleziony element minimalny.
Wersja II:
Program ma wypisywać indeks w tablicy odpowiadający znalezionemu minimum oraz element minimalny.
Czy mogę zrobić to zadanie modyfikując to:
#include <iostream> using namespace std; int main() { int T[100]; int n, i, m; cin >> n; for(i = 0; i < n; i++) { cin >> T[i]; } m = T[0]; for(i = 1; i < n; i++) { if(m > T[i]) { m = T[i]; } } cout << m << endl; return 0; } -
#include <iostream> using namespace std; int main() { int T[100]; int n, max, min, i, j, g; //n - liczba elementow //max- maksimum //min- minimum //i- licznik pętli dla maksimum //j- licznik pętli dla minimum cin>>n; //wczytuje dane for(g=0; g<n; g++) { cin>>T[g];//kolejne elementy do tablicy } //szukanie maksimum max=T[0]; for(i=1; i<n; i++) { if(max<T[i]) { max=T[i]; } } //***************************************************** //szukanie minimum min=T[0]; for(j=1; j<n; j++) { if(min>T[j]) { min=T[j]; } } //Wypisanie wyniku cout<<"Maksimum to: "<<max<<endl; cout<<"Minimum to: "<<min<<endl; }Bardzo dziękuję za wyjaśnienie. Czy tak może być?
-
' date='14 Listopad 2019 - 15:01' timestamp='1573740072' post='15696906']Uwaga techniczna, jak wklejasz kod, to używaj tagów code (< > w menu).
Minimum
#include <iostream> using namespace std; int main() { int T[100]; int n, i, m; cin >> n; for(i = 0; i < n; i++) { cin >> T[i]; } m = T[0]; for(i = 1; i < n; i++) { if(m > T[i]) { m = T[i]; } } cout << m << endl; return 0; }Maksimum
#include <iostream> using namespace std; int main() { int T[100]; int n, i, m; cin >> n; for(i = 0; i < n; i++) { cin >> T[i]; } m = T[i]; for(i = 1; i < n; i++) { if(m <T[i]) { m = T[i]; } } cout << m << endl; return 0; }Prawda, że czytelniej?
Czy wiesz jak na papierze rozwiązać zadanie, jakie kroki trzeba zrobić?
Coś z programowania jarzysz, czy ciężko z tym? Rozumiesz jak działają zmienne, pętle, podane wyżej programy (w drugim jest błąd, widzisz go?)? Przydałoby się wiedzieć jakim językiem tłumaczyć.
Z połączenia tych dwóch programów nie do końca wyjdzie to co ma być w zadaniu, wynik będzie się zgadzał ale użyta metoda już nie. Ale na początek można zrobić taki wariant.
Żeby zrozumieć jak połączyć, to proponuję przyjrzeć się poszczególnym fragmentom i zobaczyć jaka jest część wspólna programów, a czym się różnią.
Tak trochę słabo jarze, teorię znam, ale jak sam mam coś napisać sprawia mi to narazie ból. Błędu nie mogę znaleźć, jedynie może m=T[0]? Co do rozwiązania zadania z połączenia tych dwóch, to może stworzyć dwie funkcje jedną i potem je wywołać?
-
Mam napisany taki kod do minimum:
#include <iostream>
using namespace std;
int main()
{
int T[100];
int n, i, m;
cin >> n;
for(i = 0; i < n; i++)
{
cin >> T;
}
m = T[0];
for(i = 1; i < n; i++)
{
if(m > T)
{
m = T;
}
}
cout << m << endl;
return 0;
}
I taki do maksimum
#include <iostream>
using namespace std;
int main()
{
int T[100];
int n, i, m;
cin >> n;
for(i = 0; i < n; i++)
{
cin >> T;
}
m = T;
for(i = 1; i < n; i++)
{
if(m <T)
{
m = T;
}
}
cout << m << endl;
return 0;
}
I nie wiem jak to połączyć
-
Cześć mam zadanie z którym nie mogę sobie poradzić.
Zadanie brzmi następująco:
Napisz program w języku C++, który wczyta liczbę całkowitą 1<=N<=1000, a następnie n liczb całkowitych (typu int) i znajdzie wśród tych liczb minimum i maksimum zgodnie z algorytmem jednoczesnego znajdowania minimum i maksimum.
Algorytm jednoczesnego znajdowania minimum i maksimum wygląda jakoś tak
mamy np. liczby 1 5 7 2 3 8 2 4 3 2
Porównujemy je parami
1<5 7>2 3<8 2<4 3>2
U góry wypisujemy większe i wsród nich szukamy max
5 7 8 4 2
Na dole wypisujemy mniejsze i szukamy miniumum
1 2 3 2 2
Proszę o podpowiedzi z wykorzystaniem pętli oraz tablic bardzo proszę bez skomplikowanych funkcji

Funkcja Eulera
w Programowanie
Napisano · Edytowane przez Roundstic
Mam problem z napisaniem jednej własności funkcji załączonej na obrazku.
Napisałem takie coś:
void rozklad(int n) { int k; k=2; int fi; fi = 1; while(n>1) { while(n%k==0) { n = n/k; fi= fi*funkcja1(k); } k++; } cout<<fi; }Ale problem jest taki, że to liczy fi(2)*fi(2)*fi(3) = 1*1*2=2, a powinno liczyć fi(4)*fi(3)=2*2=4 i nie wiem jak zrobić żeby to zliczało potęgi.