funkcje i parametry - zadania

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”.
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ć.
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

0

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

int mod(int m, int n) {
	if (n <= m) 
		return mod(m - n, n);
	else
		return m;
}
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.

0

@Dratewka:

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


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

1 użytkowników online, w tym zalogowanych: 0, gości: 1