funkcje i parametry - zadania

funkcje i parametry - zadania
DR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6
0

Witam,
Mógłby mi ktoś pomóc w rozwiązaniu tych zadań nie jestem do końca w stanie zrozumieć funkcji z parametrami może coś mi się rozjaśni jak zobaczę rozwiązania tych zadań od razu mówie, że dobrze było by nie korzystać z tablic.

  1. Napisz program z funkcją, która będzie liczyła resztę z dzielenia dwóch niezerowych liczb naturalnych. Funkcja może używać do tego działania jedynie operatora odejmowania.
  2. Napisz program, który pobierze od użytkownika ciąg składający się z liter „a” i „b”, który ma długość 10 znaków (każdy znak musi być wczytany z osobna). Program powinien wykryć i zasygnalizować, jeśli w tym ciągu znajdzie się sekwencja „abba”.
kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
0

Zacznijmy od zadania pierwszego. Czego nie rozumiesz?

  • czym jest funkcja? Funkcja to takie coś, co przekształca pewną wartość (lub kilka wartości) w inną wartość (lub kilka wartości). Np. sinus.
  • czym jest parametr? Parametr to wartość której funkcja używa do przekształcenia - np. x w sin(x)
  • czym jest operator odejmowania? To tzw. minus.
    Swoją drogą zadanie ciekawe, bo jeśli surowo trzymać się wyłącznie operatora- to nie jest do wykonania. Zakładam, że nie wolno po prostu mnożyć i dzielić.
DR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6
0
kq napisał(a):

Zacznijmy od zadania pierwszego. Czego nie rozumiesz?

  • czym jest funkcja? Funkcja to takie coś, co przekształca pewną wartość (lub kilka wartości) w inną wartość (lub kilka wartości). Np. sinus.
  • czym jest parametr? Parametr to wartość której funkcja używa do przekształcenia - np. x w sin(x)
  • czym jest operator odejmowania? To tzw. minus.
    Swoją drogą zadanie ciekawe, bo jeśli surowo trzymać się wyłącznie operatora- to nie jest do wykonania. Zakładam, że nie wolno po prostu mnożyć i dzielić.

Szczerze to sam nie rozumiem o co chodzi w "Funkcja może używać do tego działania jedynie operatora odejmowania." dlatego chciałbym zająć się drugim zadaniem jak mam je zrobić nie używając tablic "(każdy znak musi być wczytany z osobna)" czyli co mam zrobić 10 char i każdy znak wpisać osobno xD? po stronie użytkownika

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5023
0

Co do pierwszego, w internecie na pewno jest: "modulo using only substraction algorithm", a wygląda tak:

Kopiuj
int mod(int m, int n) {
	if (n <= m) 
		return mod(m - n, n);
	else
		return m;
}
kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
0
Dratewka napisał(a):
kq napisał(a):

Zacznijmy od zadania pierwszego. Czego nie rozumiesz?

  • czym jest funkcja? Funkcja to takie coś, co przekształca pewną wartość (lub kilka wartości) w inną wartość (lub kilka wartości). Np. sinus.
  • czym jest parametr? Parametr to wartość której funkcja używa do przekształcenia - np. x w sin(x)
  • czym jest operator odejmowania? To tzw. minus.
    Swoją drogą zadanie ciekawe, bo jeśli surowo trzymać się wyłącznie operatora- to nie jest do wykonania. Zakładam, że nie wolno po prostu mnożyć i dzielić.

Szczerze to sam nie rozumiem o co chodzi w "Funkcja może używać do tego działania jedynie operatora odejmowania." dlatego chciałbym zająć się drugim zadaniem jak mam je zrobić nie używając tablic "(każdy znak musi być wczytany z osobna)" czyli co mam zrobić 10 char i każdy znak wpisać osobno xD? po stronie użytkownika

Nie, masz go wczytać osobno (czyli nie jako ciąg znaków jednym wywołaniem np. getline()). Możesz jak najbardziej wczytywać do kolejnych elementów tablicy.

BG
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 293
0

@Dratewka:

To zadanie możesz zaimplementować sobie za pomocą prostej maszyny stanów:
Coś w stylu:

Kopiuj

int main()
{
  char c;
// ustaw stan "pusty" - S0

  while (cin >> c)
  {
  // jeśli jesteś w stanie S0 
  //   jeśli wczytano 'a' - przejdź do S1 
  //   jeśli wczytano dowolny inny znak - wróć do stanu S0 
  // 
  // jeśli jesteś w stanie S1
  //   jeśli wczytano 'b' - przejdź do S2
  //   jeśli wczytano dowolny inny znak - wróć do stanu S0 
  // 
  // jeśli jesteś w stanie S2
  //   jeśli wczytano 'b' - przejdź do S3
  //   jeśli wczytano dowolny inny znak - wróć do stanu S0 
  //
  // jeśli jesteś w stanie S3
  //   jeśli wczytano 'a' - wyjdź z pętli - masz abba !
  //   jeśli wczytano dowolny inny znak - wróć do stanu S0 
  }
}

Implementację "stanów" sobie wymyśl. To może być cokolwiek, np liczba całkowita albo std::string

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.