• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

zadanie maturalne c++

Object Storage Arubacloud
0 głosów
467 wizyt
pytanie zadane 5 marca 2022 w C i C++ przez fsfxvcxv Obywatel (1,160 p.)

Nie wie ktoś w którym miejscu moze znajdowac sie blad? Zadanie 6.2 z matury. Link do zadanie: https://cke.gov.pl/images/_EGZAMIN_MATURALNY_OD_2015/Arkusze_egzaminacyjne/2017/formula_od_2015/informatyka/MIN-R2_1P-172.pdf

#include <iostream>
#include <fstream>
using namespace std;

string palindrom(string napis)
{
    string pom="";
    for(int i=napis.size()-1; i>=0; i--)
    {
        pom=pom+napis[i];
    }
    return pom;
}

int main()
{
    ifstream infile("dane.txt");
    string cyfra;
    string nowy="";
    int licznik=0;
    for(int i=0; i<200; i++)
    {
        for(int j=0; j<320; j++)
        {
            infile>>cyfra;
            nowy=nowy+cyfra;
        }
        if(nowy!=palindrom(nowy))
        {
            licznik++;
        }
        nowy="";
    }
    cout<<licznik;
    return 0;
}

 

2 odpowiedzi

+2 głosów
odpowiedź 5 marca 2022 przez toko Dyskutant (7,670 p.)
wybrane 7 marca 2022 przez fsfxvcxv
 
Najlepsza

Porównujesz po kolei wszystkie znaki w linii (bez spacji) a nie liczby. Przykład: 12 2 12 jest symetryczne, ale twój program porównuje znaki 12212, co po odwróceniu nie daje samego siebie - 21221

#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
 
bool czy_symetryczne(vector<int> linia) // funkcja sprawdzająca czy linia jest symetryczna
{
    for(int i = 0; i < linia.size(); i++) { // idziemy po wszystkich liczbach w linii
        if(linia[i] != linia[linia.size()-i-1]) // jeśli jest różne od początku i końca to zwracamy że nie
            return false;
    }
    return true; // jeśli nie zwrócilismy że nie to zwracamy tak
}
 
int main()
{
    ifstream infile("dane.txt");
    int licznik=0;
    for(int i = 0; i < 200; i++) // idziemy po wszytkich liniach
    {
        vector<int> linia (320); // tworzymy wektor w którym będziemy trzymać liczby z linii
        for(int j = 0; j < 320; j++) // idziemy po wszystkich liczbach
            infile >> linia[j]; // wczytujemy liczbę
        if(!czy_symetryczne(linia)) // jeśli linia jest niesymetryczna to znaczy że trzeba ją usunąć i zwiększamy licznik
            licznik++;
    }
    cout << licznik << endl; // wypisujemy wynik
    return 0;
}
// KOD NIESPRAWDZONY. MOŻE BYĆ JAKIŚ BŁĄD
+1 głos
odpowiedź 5 marca 2022 przez TOM_CPP Pasjonat (22,640 p.)

Źle zrozumiałeś zadanie. Według definicji:

Obraz ma pionową oś symetrii, jeśli w każdym wierszu i-ty piksel od lewej strony
przyjmuje tę samą wartość.

To oznacza że powinieneś wczytywać wartości liczb do tablicy i następnie sprawdzać ich symetryczność.

Na przykład wiersz 245 23 0 23 245 jest symetryczny, ale używając rozwiązania z Twojego kodu już nie jest,

gdyż 24523023245 nie jest palindromem!

 

Podobne pytania

0 głosów
1 odpowiedź 105 wizyt
pytanie zadane 18 maja 2023 w C i C++ przez fsfxvcxv Obywatel (1,160 p.)
+1 głos
1 odpowiedź 234 wizyt
pytanie zadane 15 grudnia 2023 w C i C++ przez Wojo772233 Początkujący (350 p.)
0 głosów
1 odpowiedź 168 wizyt

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...