Rozwiązane

Zad.1
Napisz program, który w pobranym od urzytkownika równaniu zamieni wszystkie znaki działań matematycznych, i zamień je na znaki zapytania. W tej postaci wypisz je na ekranie monitora.
Zad.2
Z tablicy dwuwymiarowej usuń wybrany wiersz z jednoczesną kompresją tablicy (tzn. przesunięcie do góry wszystkich wierszy leżących poniżej)


Oba programy w C++



Odpowiedź :

Zadanie 1:

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

int main()
{
string napis;
cin >> napis;

for (int i = 0; i < napis.length(); i++)
{
switch (napis[i])
{
case '*':
napis[i] = '?';
break;
case ':':
napis[i] = '?';
break;
case '+':
napis[i] = '?';
break;
case '-':
napis[i] = '?';
break;
case '/':
napis[i] = '?';
break;
}
}

cout << napis;
system("pause");
return 0;
}

Zadanie 2:

#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
char tablica[3][3];

// Wypełnianie tablicy jakimś znakiem (spacja)
for (int i = 0; i < 3; i++)
for (int o = 0; o < 3; o++)
tablica[i][o] = 'i';

// wyświetlanie
for (int i = 0; i < 3; i++)
{
for (int o = 0; o < 3; o++)
cout << tablica[i][o];
cout << endl;
}


// Wyrzucanie wiersza 2
for (int i = 0; i < 3; i++)
for (int o = 0; o < 3; o++)
{
if (i >= 2-1) // zamieniamy bieżący element z następnym
// (tak, aż do końca tablicy)
swap(tablica[i][o], tablica[i+1][o]);

if (i == 3-1) // 3-1 - 3 - koniec tablicy,
// -1 - bo numerujemy od zera, a nie od 1
tablica[3-1][o] = 0;
}

// wyświetlanie
cout << "Wynik koncowy:\n";
for (int i = 0; i < 3; i++)
{
for (int o = 0; o < 3; o++)
cout << tablica[i][o];
cout << endl;
}

system("pause");
return 0;
}