Napisz w czterech językach nagłówek i ciało funkcji

0

Witam :-)

Dopiero uczę się programować w różnych językach, do zrobienia mam następujące zadanie, które rozwiązałem w ramach moich możliwości tylko nie wiem czy dobrze. Byłbym bardzo wdzięczny za korektę moich wypocin :-)

W czterech językach programowania (Pascal, C, C++, C#) napisz nagłówek funkcji, która przyjmuje jako dane:

liczbę całkowitą,

łańcuch znaków

oraz zwraca

dowolną liczbę,

pojedynczy znak

C++
using namespace std;
void zwrot(char c, bool tf, int& z, string &s);

C#
using System;
private void zwrot(char c, Boolean tf, ref Decimal z, ref string s)
private void zwrot(char c, Boolean tf, out Decimal z, out string s)

C
void zwrot(char c, char tf, intz, chars);

Pascal
procedure zwrot(i:char; tf:boolean; var z:integer; var s:string);

0

Jakoś nie widzę prawie nic wspólnego pomiędzy zadaniem a rozwiązaniem.
przyjmuje: liczbę całkowitą
zwraca: dowolną liczbę (czyli nie koniecznie całkowitą);
Zwracanie jednej z wartości może być bezpośrednie.

0

Poprawne implementacje w Pascalu wyglądają następująco:
(chcę zaznaczyć, że Object Pascal również posiada coś takiego jak out, które też działa przez referencję, i jest semantycznie dedykowane właśnie do zwracania wartości - od przekazywania stricte przez referencję (var) podręcznikowo różni się tym, że tak zadeklarowane parametry służą jedynie do wyprowadzania informacji (a więc nie są przeznaczone do odczytu). W praktyce jednak, w moim Delphi 6 bez problemu udało mi się posłużyć parametrem out dokładnie tak samo jak zwykłą referencją var).

... jako procedura (z dwoma wartościami zwracanymi jako parametr)

procedure Procedura(liczba_calkowita: integer;
                 lancuch_znakow: string;
                 out dowolna_liczba: double;
                 out pojedynczy_znak: char);
begin
  dowolna_liczba := liczba_calkowita*1234;
  pojedynczy_znak := lancuch_znakow[1];
end;

... lub jako funkcja (z jedną wartością zwracaną poprzez parametr, a drugą jako wynik działania funkcji)

function Funkcja(liczba_calkowita: integer;
                 lancuch_znakow: string;
                 out dowolna_liczba: double) : char;
begin
  dowolna_liczba := liczba_calkowita*1234;
  Result := lancuch_znakow[1]; //pojedynczy_znak zwracany jako rezultat funkcji
end;

Delphi ma z C# więcej wspólnego niż jakikolwiek inny język.

0

string nie jest łańcuchem znaków (roziązaniw c++)

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