Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania bez odpowiedzi
Viewing all 21942 articles
Browse latest View live

Wyszukiwanie po nazwiskach w listach jednokierunkowych i usuwanie po nim osób

$
0
0
#include <iostream>
#include <string>
#include <cstdlib>
#include <windows.h>

using namespace std;

struct osoba {
	string imie;
	string nazwisko;
	int wiek;
	osoba* nastepna; // wskaźnik na następny element
	osoba(); // konstruktor
};

osoba::osoba() {
	nastepna = 0; // konstruktor
}

struct lista {
	osoba* pierwsza; // wskaźnik na początek listy
	void dodaj_osobe(string imie, string nazwisko, int wiek);
	void usun_osobe(int nr);
	void wyswietl_liste();
	void usun_osobe_nazwisko(string nazwisko);
	void znajdz_osobe_nazwisko(string nazwisko);
	lista();
};

lista::lista() {
	pierwsza = 0; // konstruktor
}

void lista::wyswietl_liste()
{
	// wskaznik na pierszy element listy
	osoba* temp = pierwsza;

	// przewijamy wskazniki na nastepne elementy
	while (temp)
	{
		cout << "imie: "<< temp->imie << ", nazwisko: "<< temp->nazwisko << ", wiek: "<< temp->wiek << endl;
		temp = temp->nastepna;
	}
}

void lista::usun_osobe(int nr)
{
	// jezeli to pierwszy element listy
	if (nr == 1)
	{
		osoba* temp = pierwsza;
		pierwsza = temp->nastepna; //ustawiamy poczatek na drugi element
		delete temp; // usuwamy stary pierwszy element z pamieci
	}

	// jeżeli nie jest to pierwszy element
	else if (nr >= 2)
	{
		int j = 1;

		// do usuniecia srodkowego elemetnu potrzebujemy wskaznika na osobe n-1
		// wskaznik *temp bedzie wskaznikiem na osobe poprzedzajaca osobe usuwana
		osoba* temp = pierwsza;

		while (temp)
		{
			// sprawdzamy czy wskaznik jest na osobie n-1 niz usuwana
			if ((j + 1) == nr) break;

			// jezeli nie to przewijamy petle do przodu
			temp = temp->nastepna;
			j++;
		}

		// wskaznik *temp wskazuje teraz na osobe n-1
		// nadpisujemy wkaznik n-1 z osoby n na osobe n+1
		// bezpowrotnie tracimy osobe n-ta

		// jezeli usuwamy ostatni element listy
		if (temp->nastepna->nastepna == 0) {
			delete temp->nastepna;
			temp->nastepna = 0;
		}
		// jezeli usuwamy srodkowy element
		else {
			osoba* usuwana = temp->nastepna;
			temp->nastepna = temp->nastepna->nastepna;
			delete usuwana;
		}
	}
}

void lista::dodaj_osobe(string imie, string nazwisko, int wiek)
{
	osoba* nowa = new osoba; // tworzy nowy element listy

	// wypełniamy naszymi danymi
	nowa->imie = imie;
	nowa->nazwisko = nazwisko;
	nowa->wiek = wiek;

	if (pierwsza == 0) // sprawdzamy czy to pierwszy element listy
	{
		// jeżeli tak to nowy element jest teraz początkiem listy
		pierwsza = nowa;
	}
	else
	{
		// w przeciwnym wypadku wędrujemy na koniec listy
		osoba* temp = pierwsza;

		while (temp->nastepna)
		{
			// znajdujemy wskaźnik na ostatni element
			temp = temp->nastepna;
		}

		temp->nastepna = nowa; // ostatni element wskazuje na nasz nowy
	}
}

void lista::znajdz_osobe_nazwisko(string nazwisko)
{
	
}

void lista::usun_osobe_nazwisko(string nazwisko)
{
	
}

int main()
{
	lista* baza = new lista; // tworzymy liste

	int wybor;

	string n_imie, n_nazwisko;
	int n_wiek;

	int do_usuniecia;

	string nazwisko_usuwane;

	string nazwisko_szukane;

	do
	{
		cout << "Co chcesz zrobic?"<< endl;
		cout << "1. Dodac osobe"<< endl;
		cout << "2. Usunac osobe po numerze"<< endl;
		cout << "3. Usunac osobe po nazwisku"<< endl;
		cout << "4. Wypisac wszystkich"<< endl;
		cout << "5. Wyszukac osobe po nazwisku"<< endl;
		cout << "6. Zakonczyc program"<< endl;

		cin >> wybor;

		switch (wybor)
		{
		case 1:
			cout << "Podaj imie osoby: ";
			cin >> n_imie;
			cout << "Podaj nazwisko osoby: ";
			cin >> n_nazwisko;
			cout << "Podaj wiek osoby: ";
			cin >> n_wiek;
			baza->dodaj_osobe(n_imie, n_nazwisko, n_wiek);
			break;
		case 2:
			cout << "Podaj numer osoby: ";
			cin >> do_usuniecia;
			baza->usun_osobe(do_usuniecia);
			break;
		case 3:
			cout << "Podaj nazwisko: ";
			cin >> nazwisko_usuwane;
			baza->usun_osobe_nazwisko(nazwisko_usuwane);
			break;
		case 4:
			baza->wyswietl_liste();
			Sleep(5000);
			break;
		case 5:
			cout << "Podaj nazwisko do odszukania: ";
			cin >> nazwisko_szukane;
			baza->znajdz_osobe_nazwisko(nazwisko_szukane);
			break;
		case 6:
			exit;
		}

		system("CLS");

	} while (wybor != 6);

	return 0;
}

Umiałby ktos wytłumaczyc mi jak zrobic w liscie jednokierunkowej w c++ wyszukiwanie i usuwanie uzytkownikow po nazwisku? W wyszukiwaniu myslalem nad zwyklą pętlą for, gdzie iterator operowałby na strukturach w liscie i sprawdzał, czy nazwisko osoby jest takie, jak podane przez użytkownika, tylko nie wiem, jak to napisać.


Pobieram plik z internetu i nie mogę obsługiwać w tym momencie stron

$
0
0
Witam,

Otóż mam taki problem ,że w momencie gdy pobieram coś większego np. obraz systemu operacyjnego to nie mogę obsługiwać stron internetowych. Tak samo nie mogę się połączyć przez WiFi. W czym może być problem? Czy są to jakieś ograniczenia operatora a może problem z rejestrem na komputerze?

Z góry dziękuje za udzieloną pomoc.

Problem plecakowy decyzyjny - wyświetlanie, które przedmioty zostały zabrane.

$
0
0

Witam,

Mam pytanie odnośnie decyzyjnego zachłannego problemu plecakowego. Mianowicie oblicza mi maksymalną wartość, jednak chciałbym aby również wyświetlał, które przedmioty zostały zapakowane. Stąd moje pytanie, w którym miejscu muszę to zrobić i w jaki sposób.

Z góry dziękuję :) 

#include <iostream>

using namespace std;

void sortuj(double* p_waga, double* p_cena, int n) {
	for (int i = 0; i < n - 1; i++) {
		for (int j = 0; j < n - i - 1; j++) {
			if (p_cena[j] / p_waga[j] <= p_cena[j + 1] / p_waga[j + 1]) {
				swap(p_waga[j], p_waga[j + 1]);
				swap(p_cena[j], p_cena[j + 1]);
			}
		}
	}
}

double zapakujDecyzyjnie(double* p_waga, double* p_cena, int n, double U) {
	sortuj(p_waga, p_cena, n);
	double W = 0;
	for (int i = 0; i < n; i++) {
		if (U - p_waga[i] >= 0) {
			U -= p_waga[i];
			W += p_cena[i];
			if (U == 0) {
				return W;
			}
		}
	}
	return W;
}

int main() {
	int n;
	double U;
	cout << "Podaj ilosc przedmiotow: ";
	cin >> n;
	cout << "Podaj maksymalny udzwig: ";
	cin >> U;
	cout << endl;
	double* p_cena = new double[n];
	double* p_waga = new double[n];
	for (int i = 0; i < n; i++)
	{
	cout << "Podaj cene przedmiotu: ";
		cin >> p_cena[i];
	cout << "Podaj wage przedmiotu: ";
		cin >> p_waga[i];
	cout << endl;
	}
	cout << zapakujDecyzyjnie(p_waga, p_cena, n, U);
	cout << endl;
	delete p_waga, p_cena;
	return 0;
}

 

Proste generowanie haseł oraz ich uwierzytelnienie w programie Python

$
0
0

Drodzy ! 

W trakcie pisania swojego pomysłu natknąłem się na delikatną barierę przez którą nie mogę przejść dalej.
Chciałbym aby ten program wygenerował mi hasło za pomocą trzech losowych liczb 1-99. Następnie chciałbym wpisać to hasło aby przejść do dalszej części kodu, poniżej konkretny fragment kodu.

import random
my_number = random.randint(0,99)
guessA =-1
guessB =-1
guessC =-1
print("Hello User, This file is encrypted")
print("You have to guess a passoword, use a numbers between 1-99)


while guessA!=my_number:
    guessA=int(input())
    if guessA == my_number:
        print("You are right! It was",my_number ,"!", "Go next...")
    elif guessA>my_number:
        print("Sorry, my number is smaller than", guessA, "Try Again!")
    else:
         print("Sorry- my number is greater than",guessA, 'Try Again!')

# DOMYŚLAM SIĘ ŻE COŚ MUSI BYĆ TU #

while guessB!=my_number:
    quessB=int(input())
    if quessB == my_number:
        print("You got a second code fragment, now the last one")
    elif guessB>my_number:
        print("Sorry, my number is smaller than", guessB, "Try Again!")
    else:
         print("Sorry, my number is greater than",guessB, 'Try Again!')

while guessC!=my_number:
    quessC=int(input())
    if quessC == my_number:
        print("Now input the code")
    elif guessC>my_number:
        print("Sorry, my number is smaller than", guessC, "Try Again!")
    else:
         print("Sorry, my number is greater than",guessC, 'Try Again!')


... a dalej już tylko input.


Potrzebuje porady kogoś bardziej doświadczonego. To przyuczy mnie na przyszłość i pomoże w dalszym rozwoju!

Pozdrawiam ! 

Obróbka zdjęcia z efektem rozciągnięcia

$
0
0
Witam, obrabiam zdjęcie w stylu strech effect, mam już wycięte fragmenty do rozciągnięcia (w photoshopie) ale nie wiem jak to zrobić, zaznaczenie i rozszerzanie o x pixeli nie działa, podobnie skalowanie, proszę o pomoc.

https://youtu.be/1WpPovScFY4?t=181 dokładniej chodzi o to :)

liczby losowe c++

$
0
0

20 liczb z zakresu do 10 do 110 ma zostać wylosowanyc.

Czy dobrze to zapisałam?  

for (j=0;j<20;j++)
    {
        t[j]=rand()%110 + 10

cout<<t[j]<<""<<endl;
    }

 

Test w Javie

$
0
0

Cześć wszystkim

mam takie zadanko ze studiów:

Muszę zaimplementować klasę, która jest konieczna aby poniższy kod kompilował się i oddawał wynik "Test ok"

public class Test{    
    public static void main(String[] args){
         Element e = new Element();
        
         oczekiwanie(6, e.getResult().length);
        
         oczekiwanie(30, e.getResult()[0]);
         oczekiwanie(40, e.getResult()[1]);
         oczekiwanie(50, e.getResult()[2]);
         oczekiwanie(60, e.getResult()[3]);
 
         
         e.insert(4,70);
         oczekiwanie(70, e.getResult()[4]);
         e.insert(5,80);
         oczekiwanie(80, e.getResult()[5]);
         
         oczekiwanie(30, e.getResultAt(0));
         oczekiwanie(40, e.getResultAt(1));
    }

        public static void oczekiwanie(int should, int is){
            if(should == is)
                System.out.println("test ok"); 
            else     
                System.out.println("error"); 
        }
    
    }

Rozumiem że te trzy metody które muszę przetestować oddają wynik z tablicy, ale jakiej tablicy (jak, gdzie ją stworzyć?) Dużo myśląc wystukałam tylko (ale wiem że to jest źle ) :

 

class Element{
		
	int[] tab = new int[6];
	
		Element(){
		}
		
		void setTab(int[] tab){
			this.tab[] = tab[];
		}
		int getTab(){
			return tab[];
		}
		
		int getResult(){
			return tab[];
		}
		
		int insert(int index, int z){
			return tab[index] = z; 
		}
		
		int getResultAt(int index){
			return tab[index];
		}
	
}

Możecie mnie jakoś nakierować na dobrą odpowiedź?

C++ VS - randomowa lokalizacja przycisku po kliknięciu

$
0
0

Witam.

Visual C++, Windows Forms
Mam prostą funkcję jak poniżej, po każdym kliknięciu w przycisk pojawia się on w nowym punkcie w aplikacji, coś ala minigra... Z tym, że w tej aplikacji mam również textBox, pictureBox oraz pasek menuStrip.

W jaki sposób mogę sprawić, aby przycisk nie generował się na np. pictureBoxie czy też pasku menuStrip, tylko w " wolnej przestrzeni "? Myślałem o jakimś uwzględnieniu lokalizacji wymienionych rzeczy. Da się jakoś sprawnie i zwięźle to zapisać?

Z góry dziękuję za pomoc!
 

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
{
	button1->Location = Point(rand() % 300, rand() % 300);

}

 


Matura informatyka- zadanie na napisanie kodu na kartce

$
0
0

Witajcie,

Jeżeli w danych wejściowych mam tablicę zawierającą jakieś elementy i zmienną która informuje ile jest elementów w tej tablicy i mam napisać algorytm to muszę wykorzystać wszystkie dane czy mogę zaprzestać tylko na tablicy?

W poleceniu nie ma słowa o tym czy muszę wykorzystać wszystkie dane czy też nie.

windows-server 2016

$
0
0
Wie ktoś jak ograniczyć miejsce na zmapowanym dysku przez group policy?

Test w Javie

$
0
0

Cześć wszystkim

mam takie zadanko ze studiów:

Muszę zaimplementować klasę, która jest konieczna aby poniższy kod kompilował się i oddawał wynik "Test ok"

public class Test{    
    public static void main(String[] args){
         Element e = new Element();
        
         oczekiwanie(6, e.getResult().length);
        
         oczekiwanie(30, e.getResult()[0]);
         oczekiwanie(40, e.getResult()[1]);
         oczekiwanie(50, e.getResult()[2]);
         oczekiwanie(60, e.getResult()[3]);
 
         
         e.insert(4,70);
         oczekiwanie(70, e.getResult()[4]);
         e.insert(5,80);
         oczekiwanie(80, e.getResult()[5]);
         
         oczekiwanie(30, e.getResultAt(0));
         oczekiwanie(40, e.getResultAt(1));
    }

        public static void oczekiwanie(int should, int is){
            if(should == is)
                System.out.println("test ok"); 
            else     
                System.out.println("error"); 
        }
    
    }

Rozumiem że te trzy metody które muszę przetestować oddają wynik z tablicy, ale jakiej tablicy (jak, gdzie ją stworzyć?) Dużo myśląc wystukałam tylko (ale wiem że to jest źle ) :

 

class Element{
		
	int[] tab = new int[6];
	
		Element(){
		}
		
		void setTab(int[] tab){
			this.tab[] = tab[];
		}
		int getTab(){
			return tab[];
		}
		
		int getResult(){
			return tab[];
		}
		
		int insert(int index, int z){
			return tab[index] = z; 
		}
		
		int getResultAt(int index){
			return tab[index];
		}
	
}

Możecie mnie jakoś nakierować na dobrą odpowiedź?

Zadanie - czasowa złożoność.

$
0
0
Ktoś mógłby pomóc z rozwiązaniem ego zadania?

Wyznacz czasową złożoność obliczeniową oraz klasę czasowej złożoności obliczeniowej dla następującego

algorytmu.
Wejście:
n - ilość liczb w tablicy
T[] - tablica zawierająca n liczb
Wyjście:
s - wynik pracy algorytmu
Dane pomocnicze:
i,j - indeksy elementów
Krok 1: s=0
Krok 2: i=0
Krok 3: Jeśli j=n-0, to zakończ
Krok 4: j=0
Krok 5: Jeśli j=10, to idź do kroku 9
Krok 6: s=s+T[i+j]
Krok 7: j=j+1
Krok 8: Idź do kroku 5
Krok 9: i=i+1
Krok 10: Idź do kroku 3

C++ Linux - biblioteka features.h nie istnieje

$
0
0
Świeżo zainstalowałem code::blocksa. Przy próbie kompilacji w build messages pojawia się:

fatal error: features.h: Nie ma takiego pliku ani katalogu

System to dokładnie Solus.

struktury pliki

$
0
0

Nie mam pojecia czemu program nie dziala. Muszę napisac program ktory stworzy plik ulamki (to działa) i z tego pliku

 ,przepisze wartosci do tablicy, posortuje niemalejąco za pomocą qsort(funkcja dziala bo testowalem) i wypisze tablice do pliku sort.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 30
struct ulamek{
              int licz;
              unsigned mian;
              };

int porownanie (const void * p1, const void *p2)
{
const struct ulamek *u1=(struct ulamek *)p1;
const struct ulamek *u2=(struct ulamek *)p2;
        
        if(u1->licz * u2->mian > u2->licz * u1->mian) return 1;
        if(u1->licz * u2->mian < u2->licz * u1->mian) return -1;
         if(u1->licz * u2->mian == u2->licz * u1->mian) return 0;
        }
int main()
{
	FILE *plik,*plik1;
	int a;
	 if ((plik=fopen("ulamki.txt","w"))==NULL) { 
      fprintf(stderr, "\nNie mozna otworzyc pliku do zapisu.\n");  
      exit(EXIT_FAILURE);
  }
  srand((unsigned int)time(0));

  for (a=0;a<30;a++) 
     fprintf(plik,"%d %d\n", rand()%30,rand()%30+1);
     fclose(plik);
struct ulamek ulamki[N];
plik=fopen("ulamki.txt", "r");
int n=0;
while(feof(plik)==0) {
fscanf(plik,"%d %u",ulamki[n].licz,ulamki[n].mian);
n++;
}
qsort(ulamki,N,sizeof(struct ulamek),porownanie);
  fclose(plik);
if ((plik1=fopen("sort.txt","w"))==NULL) { 
      fprintf(stderr, "\nNie mozna otworzyc pliku do zapisu.\n");  
      exit(EXIT_FAILURE);
  }
  int k;
  for(k=0; k<N; ++k)
fprintf(plik1,"%d %u\n", ulamki[k].licz,ulamki[k].mian);
  fclose(plik1);
return 0;
}

 

Błąd ''Nie można otworzyć tej aplikacji.''

$
0
0
Od czasu formatu mojego komputera nie mogę włączyć ustawień. Ciągle wyskakuje błąd ''Wystąpił błąd z aplikacją Ustawienia. Odświeżenie komputera może pomóc w w rozwiązaniu tego problemu.'' Mimo restartu błąd dalej się pokazuje i nie wiem co robić. Dodam, że systemem operacyjnym to Windows 10.

technikum informatyczne

$
0
0
znowu, ile tak średnio około punktów łącznie czyli na 200 trzeba aby się dostać do takiego przeciętnego technikumi nformatycznego

HTML/JS - dodawanie zestawów pól i obliczanie iloczynu

$
0
0

Hej!

Robię mały projekcik i natrafiłem na problem frown.

Natrafiam na błąd w konsoli przeglądarki:

Zrzuty ekranu i kod błędu

Otóż chcę, aby dodawane były kolejne zestawy pól za pomocą przycisku, w których po wpisaniu przez użytkownika został obliczony iloczyn.

Mam problem jak zrobić, aby id kolejnych pól były inne od poprzednich.

Byłbym wdzięczny za odpowiedź smiley.

Jeżeli coś jest niejasne PISZ. Proszę o wybaczenie.. jestem początkujący w tej materii wink.


<html>
    <head>
        <meta charset="utf-8" />
        <title>KALKULATOREK</title>
        <script src="kalkulatorek.js"></script>
   </head>

   <body>

        <!-- div plansza przchowuje "przycisk" oraz zestawy pól -->
        <div id="plansza"></div>

        <!-- przycisk służący do dodawania kolejncyh zestawów liczb -->
        <input type="submit" id="przycisk" value="DODAJ" onclick="dodac()">

   </body>
</html>

var tresc = "";
var pole = "pole";
var j = 0;
var suma = 1;
var POLE = [];

//funkcja dodac() dodaje kolejne zestawy pól
function dodac()
{
    //pętla for dodaje kolejne pola
    for (var i=0; i<=3; i++)
	{   
        //każde pole jest typu "number" i odwołuje się do funkcji licz()
        tresc = tresc + '<input class="pola" type="number" step=0.01 onkeyup="licz()" id="'+pole+i+'">';
        document.getElementById("plansza").innerHTML = tresc;
    }

        //pole wynik
        tresc = tresc + '<input class="pola" type="text" id="wynik">';
        document.getElementById("plansza").innerHTML = tresc;

        //powoduje odstęp od kolejnych zestawów pól
        tresc = tresc + '<br>' + '<br>';
        document.getElementById("plansza").innerHTML = tresc;

    //zmienna j liczy ilość zestawów pól i pokazuje to w konsoli przeglądarki
    j++;
    console.log(j);
}

//funkcja licz() wylicza iloczyn liczb znajdujących się w <input> o id kolejno: pole0, pole1, pole2, pole3
function licz()
{   

    //pętla for pobiera wartości z pól i wpisuje je do tablicy POLE[] oraz wylicza iloczyn
    for (var i = 0; i <= 3; i++) 
    {
        POLE[i] = document.getElementById(pole[i]).value;
        iloczyn = iloczyn * POLE[i];
    }

        //wypisywanie iloczynu w kosolii przeglądarki
       console.log(iloczyn);
       document.getElementById("wynik").value = iloczyn;
}

 

Edycja rejestru - wyświetl po starcie systemu plik

$
0
0
Mam takie polecenie:

Wyświetl po starcie systemu plik o nazwie witaj.txt umieszczony w dowolnym katalogu na dysku C modyfikując klucz
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon] ----- Shell

No to jestem znalazłem już ścieżkę tylko nie wiem jak to edytować żeby niczego nie zepsuć.

Nazwa: Shell, Typ: REG_SZ, Dane: explorer.exe

Zastanawiałem się czy nie trzeba wpisać po prostu ścieżki do tego pliku witaj.txt ale wolę nie strzelać przy edycji rejestru. Wiem czym jest rejestr więc punkt przywracania systemu i kopie zapasową rejestru mam, a to co w nim edytuje to tylko polecenia nauczyciela. Dodam też że pierwszy raz edytuje rejestr i jestem w pierwszej klasie więc za dużo nie wiem.

Programowanie pytanie

$
0
0
Witam,

Mam pytanie czy ma ktoś jakiś fajny i prosty w zrozumieniu poradnik do programowania w unity?

Ponieważ szukam takowych, lecz nigdzie nie mogę znaleźć. Najlepiej gdyby to był film a nie jakiś forum na którym jest prowadzony kurs

strony internetowe

$
0
0

Witam.

Na samym wstępie chciałbym powiedzieć że mam 13 lat i nie jestem bardzo zaawansowany w robienie stron internetowych. Stronę zrobiłem w wordpress i chciałbym o ocenę mojej pracy co poprawić itd. Jest to strona fundacji mojego taty. Z góry dziękuję. link: http://www.frumis.org.pl/

Viewing all 21942 articles
Browse latest View live