Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.06.2013, 15:46   #1
XeniaZharinova
Пользователь
 
Регистрация: 18.06.2013
Сообщений: 11
Сообщение Работа с массивами. Перевод программы с C++ и Pascal на Basic

Готовые программы на C++ и Pascal. Не знакома с синтаксисом Basic, переведите кто может.

Задание:
Таблица футбольного чемпионата задана квадратной матрицей порядка n, в которой все элементы, принадлежащие главной диагонали равны 0, а каждый элемент, не принадлежащий главной диагонали, равен 2, 1 или 0 (число очков набранных в игре: 2 – выигрыш, 1 – ничья, 0 – проигрыш). Найти число команд, имеющих больше побед, чем поражений.

Pascal:
Код:
Program z3;
Uses CRT;
Var
	i,j,k,N:integer;
	A:array [1..50,1..50] of integer;
	w:array [1..50] of integer;
	l:array [1..50] of integer;
Begin
	Clrscr;
	write('N=');
	readln(N);
	k:=0;
	for i:=1 to N do
		for j:=1 to N do
			if i=j then
				A[i,j]:=0
			else 
				if i>j then begin
					write('A[',i,',',j,']=');
					readln(A[i,j]);
					if (A[i,j]<>0) and (A[i,j]<>1) and (A[i,j]<>2) then begin
						writeln('Owu6ka!');
						readkey;
						halt;
					end;
					if (A[i,j]=0) then
						A[j,i]:=2;
					if (A[i,j]=1) then
						A[j,i]:=1;
					if (A[i,j]=2) then
						A[j,i]:=0;
				end;
	for i:=1 to N do begin
		w[i]:=0;
		l[i]:=0;
		for j:=1 to N do begin
			if (A[i,j]=0) and (i<>j) then
				inc(l[i]);
			if A[i,j]=2 then
				inc(w[i]);
		end;
	end;
	for i:=1 to N do
		if w[i]>l[i] then
			inc(k);
	writeln('4ucJIo koMaHD, uMeIOwux 6oJIbwe no6eD, paBHo ',k);
	readkey;
End.
C++:
Код:
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main()
{	int i,j,k,A[50][50],w[50],l[50],N;
	clrscr();
	printf("N=");
	scanf("%d",&N);
	k=0;
	for (i=1;i<=N;i++)
		for (j=1;j<=N;j++)
			if (i==j)
				A[i][j]=0;
			else
				if(i>j)
				{	printf("A[%d][%d]=",i,j);
					scanf("%d",&A[i][j]);
					if ((A[i][j]!=0)&&(A[i][j]!=1)&&(A[i][j]!=2))
					{	printf("Owu6ka!");
						getch();
						exit(1);
					}
					if (A[i][j]==0)
						A[j][i]=2;
					if (A[i][j]==1)
						A[j][i]=1;
					if (A[i][j]==2)
						A[j][i]=0;
				}
	for (i=1;i<=N;i++)
	{	w[i]=0;
		l[i]=0;
		for (j=1;j<=N;j++)
		{
			if ((A[i][j]==0)&&(i!=j))
				l[i]++;
			if (A[i][j]==2)
				w[i]++;
		}
	}
	for (i=1;i<=N;i++)
		if (w[i]>l[i])
			k++;
	printf("4ucJIo koMaHD, uMeIOwux 6oJIbwe no6eD, paBHo %d",k);
	getch();
}
XeniaZharinova вне форума Ответить с цитированием
Старый 15.11.2013, 12:46   #2
Сергей121212
Новичок
Джуниор
 
Регистрация: 10.11.2012
Сообщений: 1
По умолчанию

Мне нужно перевести код в С++

вот собственно код:

Код:
program Adam;
uses crt;
var
 func,x,y,yp:array[1..100] of real;
 proiz:array[1..4] of real;
 h,a,b,maxfp,maxp:real;
 i,n:integer;
{---------------------------------------------------------------------}
function f(x,y:real):real; {functia proizvodnoi}
begin
 y:=x+sin(x);        {-zadacha Koshi}
 f:=y;
end;
{---------------------------------------------------------------------}
function FP(x:real):real;
begin
    FP:=(x*x)/2-cos(x)   {reshenie zadachi Koshi}
end;
{---------------------------------------------------------------------}
procedure Adams;
begin
 writeln('metod Adamsa for reshenia zadachi Koshi');
 writeln('nachalnie proizvodnie');
for i:=1 to 4 do
 writeln('x[',i,']=',x[i]:2:3,'      f(x[',i,'],y[',i,'])=',f(x[i],y[i]):2:3);
 writeln('nachalnoe znachenie Y=',y[4]:2:3);
 for i:=4 to n do
  begin
   y[i+1]:=y[i]+h/24*(55*f(x[i],y[i])-59*f(x[i-1],y[i-1])+37*f(x[i-2],y[i-2])-9*f(x[i-3],y[i-3]));
   x[i+1]:=x[i]+h;
   writeln('x[',i+1,']=',x[i+1]:2:3,'    y[',i+1,']=',y[i+1]:2:3);
  end;
end;
{---------------------------------------------------------------------}
begin
 clrscr;
 writeln('vvedite znachenie granic otrezka a-nachalo,b-konec');
 readln(a,b);
 writeln('kol-vo razbienia otrezka (a,b] :n');
 readln(n);
 h:=(b-a)/n;
 writeln('znachenie shaga',h:2:3);
 writeln('vvedem znachenie nachalnix proizvodnix');
 x[1]:=a;
for i:=1 to 4 do  {}
 begin            {}
  f(x[i],y[i]);   {}
  x[i+1]:=x[i]+h; {opredelaem nachalnie znachenia}
 end;             {}
 y[4]:=x[4]*x[4]/2-cos(x[4]); {}
 Adams;
 for i:=4 to n do
    yp[i]:=FP(x[i]);
  MaxP:=abs(y[4]-yp[4]);
 for i:=5 to n do
  if MaxP<abs(y[i]-yp[i]) then
      MaxP:=abs(y[i]-yp[i]);
 writeln('practicheskaia pogreshnost',MaxP:2:6);
{ writeln(y[i]);
 writeln(yp[i]);}
 MaxP:=abs(y[4]-yp[4])/(h*h*h*h);
 for i:=5 to n do
  if MaxP<abs(y[i]-yp[i])/(h*h*h*h) then
      MaxP:=abs(y[i]-yp[i])/(h*h*h*h);
  writeln('teoreticheskaia pogreshnost',MaxP:2:6);
 readkey;
end.


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 15.11.2013 в 13:07.
Сергей121212 вне форума Ответить с цитированием
Старый 15.11.2013, 13:13   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Сергей121212
Мне нужно перевести код в С++
Если Вам надо - переводите.
А зачем в чужой , к тому же "мёртвой" теме, код публиковать, непонятно...


p.s. форум, это не роботизированная автоматическая система решения задач.
Тут живые люди читают/пишут/помогают.
Помощь, как минимум, надо вежливо попросить. Да и чем помочь - сделать всё за Вас?! Поэтому и ваши самостоятельные наработки/попытки перевода тоже не помешали бы...
впрочем, это моё личное мнение, я тут так, "мимо проходил"...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с двумерными массивами (visual basic) Mikle1990 Помощь студентам 15 09.03.2015 23:05
Перевод программы с visual basic на delphi lordsyrius Фриланс 11 03.09.2010 09:53
Работа с массивами (Basic) lizka_dro Помощь студентам 4 22.07.2010 12:09
задача Visual Basic. Работа с массивами ProgramBad Помощь студентам 3 14.02.2009 02:10