Skocz do zawartości

[prywata] przepisanie z pascala na c++


Eldoka

Rekomendowane odpowiedzi

Witam,

Potrzebuję przepisać kod z pascala na c++. Dla kogoś kto zna się na tym języku będzie to 5 minut w zamian mogę umieścić link na eldoka.pl

program tablica2;
{$APPTYPE CONSOLE}
uses
SysUtils;
CONST
nmax=20;
TYPE
Dane=ARRAY [1..nmax] OF INTEGER;
Dane1=ARRAY[1..nmax] OF INTEGER;
VAR
i,j,n,slad:INTEGER;
T:DANE;
A:DANE1;
BEGIN
	Writeln('Podaj n');
	Readln(n);
	Writeln;
	slad:=0;
FOR i:=1 TO n DO
FOR j:=1 TO n DO
	BEGIN
	Write('wiersz = ',i,' kolumna = ',j,' T[',i,',',j,']=');
	Readln (T[i,j]);
END;
	Writeln;
FOR i:=1 TO n DO
FOR j:=1 TO n DO
	BEGIN
	Write('wiersz = ',i,' kolumna = ',j,' T[',i,',',j,'] = ');
	Writeln (T[i,j]);
IF i=j THEN
	BEGIN
A[i]:=T[i,j];
slad:=slad+A[i];
END
END;
Writeln;
Writeln('Slad macierz wynosi ',slad);
Readln;
END.

forum zdrowotne - dodaj ogłoszenie za darmo!

naprawiasz elektronikę? - dodaj ogłoszenie za darmo!

masz kwiaciarnię? - dodaj ogłoszenie za darmo!

Odnośnik do komentarza
Udostępnij na innych stronach

Jak dla mnie, coś w tym programie jest nie tak, może coś nie tak przepisałeś? :)

Jeśli program ma pobrać dane do macierzy T o rozmiarze nmax x nmax, potem przepisać przekątną do wektora o rozmiarze nmax i wyświetlić sumę wektora (czyli sumę przekątnej macierzy), to w C++ to by mniej więcej tak wyglądało:

#include <iostream>

using namespace std;

int main()
{
 const int nmax = 20;

 typedef int Dane[nmax][nmax];
 typedef int Dane1[nmax];  

 int i,j,n,slad;
 Dane T;
 Dane1 A;

 cout <<"Podaj n ";
 cin >>n;
 cin.ignore();

 slad=0;

 for (i=0;i<n;++i)
  for (j=0;j<n;++j)
  {
	cout <<"wiersz = "<<(i+1)<<" kolumna = "<<(j+1)<<" T["<<(i+1)<<", "<<(j+1)<<"] = ";
	cin >> T[i][j];
	cin.ignore();

  }

 cout <<endl;

 for (i=0;i<n;++i)
 {
  for (j=0;j<n;++j)
  {
	cout <<"wiersz = "<<(i+1)<<" kolumna = "<<(j+1)<<" T["<<(i+1)<<", "<<(j+1)<<"] = ";
	cout << T[i][j]<<endl;

	if (i==j)
	{
	   A[i]=T[i][j];
	   slad=slad+A[i];
	}		

  }  
 }

 cout <<endl;
 cout <<"Slad macierz wynosi "<<slad<<endl;

 getchar();


 return 0;   
}

Skuteczne pozycjonowanie stron www | Nowe randki internetowe

Odnośnik do komentarza
Udostępnij na innych stronach

dzięki wielkie za pomoc. Podeślij mi linka na pm.

A jak poprawić ten kod w pascalu żeby działa tzn. dylemat z tablicą został rozwiązany?

To ma być tablica kwadratowa?

forum zdrowotne - dodaj ogłoszenie za darmo!

naprawiasz elektronikę? - dodaj ogłoszenie za darmo!

masz kwiaciarnię? - dodaj ogłoszenie za darmo!

Odnośnik do komentarza
Udostępnij na innych stronach

w tym paskalowym kodzie masz dwie tablice

A sądząc po kodzie powinna byc jedna kwadratowa

Type
TDane=ARRAY [1..nmax][1..nmax] of Integer;

Var
t: Tdane
i,j: integer;
begin

for i := 1 to nmax do 
 for j := 1 to nmax do 
 begin
t[i,j] := coś 
 end;

Ten Twoj kod to nawet by sie nie skompilował bo T jest jednowymiarową tablicą a tego kompilator nie przepuści

Odnośnik do komentarza
Udostępnij na innych stronach

zmieniłem tablicę ale na dole jest jeszcze wywoływana przez A:DANE1; a konkretnie slad:=slad+A; :/...

kiszka program

program tablica2;
{$APPTYPE CONSOLE}
uses
SysUtils;
CONST
nmax=20;
TYPE
Dane=ARRAY [1..nmax][1..nmax] of Integer;

VAR
i,j,n,slad:INTEGER;
T:DANE;
A:DANE1;
BEGIN
	Writeln('Podaj n');
	Readln(n);
	Writeln;
	slad:=0;
FOR i:=1 TO n DO
FOR j:=1 TO n DO
	BEGIN
	Write('wiersz = ',i,' kolumna = ',j,' T[',i,',',j,']=');
	Readln (T[i,j]);
END;
	Writeln;
FOR i:=1 TO n DO
FOR j:=1 TO n DO
	BEGIN
	Write('wiersz = ',i,' kolumna = ',j,' T[',i,',',j,'] = ');
	Writeln (T[i,j]);
IF i=j THEN
	BEGIN
A[i]:=T[i,j];
slad:=slad+A[i];
END
END;
Writeln;
Writeln('Slad macierz wynosi ',slad);
Readln;
END.

forum zdrowotne - dodaj ogłoszenie za darmo!

naprawiasz elektronikę? - dodaj ogłoszenie za darmo!

masz kwiaciarnię? - dodaj ogłoszenie za darmo!

Odnośnik do komentarza
Udostępnij na innych stronach

Nie mam nic do kompilacji, ale powinno być chyba tak:

program tablica2;
{$APPTYPE CONSOLE}
uses
SysUtils;
CONST
nmax=20;
TYPE
Dane=ARRAY [1..nmax, 1..nmax] OF INTEGER;
Dane1=ARRAY[1..nmax] OF INTEGER;
VAR
i,j,n,slad:INTEGER;
T:DANE;
A:DANE1;
BEGIN
	Writeln('Podaj n');
	Readln(n);
	Writeln;
	slad:=0;
FOR i:=1 TO n DO
FOR j:=1 TO n DO
	BEGIN
	Write('wiersz = ',i,' kolumna = ',j,' T[',i,',',j,']=');
	Readln (T[i,j]);
END;
	Writeln;
FOR i:=1 TO n DO
FOR j:=1 TO n DO
	BEGIN
	Write('wiersz = ',i,' kolumna = ',j,' T[',i,',',j,'] = ');
	Writeln (T[i,j]);
IF i=j THEN
	BEGIN
A[i]:=T[i,j];
slad:=slad+A[i];
END
END;
Writeln;
Writeln('Slad macierz wynosi ',slad);
Readln;
END.

Skuteczne pozycjonowanie stron www | Nowe randki internetowe

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności