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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 04.07.2009, 23:23   #41
tipson
Пользователь
 
Регистрация: 01.04.2009
Сообщений: 76
По умолчанию

ошибка где "+" в выделенных строчках
пишет "<" Нужен
borland turbo pascal 7.0 если че у меня
tipson вне форума
Старый 04.07.2009, 23:31   #42
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

вы < и ( различаете? пришло скачать tp7 и dosbox... в общем вся проблема в том, что в tp имя функции как переменную можно использовать только в левой части выражения... используйте временную переменную для подсчета суммы, а результат в конце присваивайте
Uguu~
__STDC__ вне форума
Старый 05.07.2009, 00:10   #43
tipilat
Пользователь
 
Аватар для tipilat
 
Регистрация: 02.07.2009
Сообщений: 22
По умолчанию

Код:
uses crt;
const bk=['A'..'Z','a'..'z','А'..'п','р'..'ё'];
Var s: string;
    j,i,len,max: integer;
Begin
clrscr;
write('s: ');
readln (s);
i:= 1;max:=0;
while i<=length (s) do
if not(s[i] in bk) then
  begin
    j:= i+1;
    while (j<=length(s)) and not(s[j] in bk) do inc (j);
    len:=j-i;
    if len>max then max:=len;
    i:=j+1;
  end
else inc (i);
writeln('Max dlina serii=',max);
readln;
end.
Цитата:
Сообщение от tipilat Посмотреть сообщение
на счёт этой проги: Как процедуры в нее включить..?
может кто то ответит мне по этой теме?..
tipilat вне форума
Старый 05.07.2009, 07:18   #44
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Неужели часть кода с места на место трудно переставить?
Код:
uses crt;
const bk=['A'..'Z','a'..'z','А'..'п','р'..'ё'];
procedure MaxLen(st:string; var max:byte);
var  j,i,len: integer;
begin
i:= 1;max:=0;
while i<=length (st) do
if not(st[i] in bk) then
  begin
    j:= i+1;
    while (j<=length(st)) and not(st[j] in bk) do inc (j);
    len:=j-i;
    if len>max then max:=len;
    i:=j+1;
  end
else inc (i);
writeln('Max dlina serii=',max);
end;
var s: string;
    mx:byte;
begin
clrscr;
write('s: ');
readln (s);
MaxLen(s,mx);
readln
end.
Цитата:
Инкремировать (прибавить один) можно только одной переменной одновременно, так:
inc(top_sum);
или так:
inc(x[i,j]);
Вот посмотрите здесь, этому же господину писал, нормально работает inc(sm,x[i,j]); и не надо ничего выдумывать, инкремировать не значит прибавлять один, а прибавлять любое целое число, в том числе и отрицательное, это просто заменитель знака плюс.
http://www.programmersforum.ru/showp...1&postcount=10

Последний раз редактировалось Stilet; 06.07.2009 в 09:02.
puporev вне форума
Старый 05.07.2009, 13:09   #45
tipson
Пользователь
 
Регистрация: 01.04.2009
Сообщений: 76
По умолчанию

Цитата:
Сообщение от __STDC__ Посмотреть сообщение
вы < и ( различаете? пришло скачать tp7 и dosbox... в общем вся проблема в том, что в tp имя функции как переменную можно использовать только в левой части выражения... используйте временную переменную для подсчета суммы, а результат в конце присваивайте
а пример?
tipson вне форума
Старый 05.07.2009, 14:59   #46
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

на примере одной функции
Код:
function top_sum(X:matrix):integer;
var
	i,j:byte;
	res:integer;
begin
	res := 0;
	for i:=1 to n do 
		for j:=1 to n-i do
			res := res + x[i,j];
	top_sum := res;
end;
или же, как было сказано выше.. вместо этого
Код:
			res := res + x[i,j];
отлично отработает это
Код:
			inc(res,x[i,j]);
Uguu~

Последний раз редактировалось __STDC__; 05.07.2009 в 15:03.
__STDC__ вне форума
Старый 05.07.2009, 16:12   #47
tipson
Пользователь
 
Регистрация: 01.04.2009
Сообщений: 76
По умолчанию

все пашет
терь нада сделать так, чтобы матрица вводилась не рэндомом, а вручную
нада же заменить ту часть где randomize?
Нада убрать что N=3 эт о константа, и сделать так, чтобы и его тоже вводили

я так понял, нада вообще убрать процедуру ввод матрицы, так как по другому не получицца

Код:
program prog1;
uses crt;
type
	matrix = array[1..20,1..20] of integer;
	

	
procedure out_matrix(X:matrix);
var
	n,i,j:byte;
begin
	for i:=1 to n do begin
		for j:=1 to n do
			write(X[i,j]:4);
		writeln;
	end;
end;

function top_sum(X:matrix):integer;
var
 n,i,j:byte;
  res:integer;

begin
	res:=0;
	for i:=1 to n do
		for j:=1 to n-i do
			res:=res+x[i,j];
      top_sum:=res;
end;

function bot_sum(X:matrix):integer;
var
 	n,i,j:byte;
  pes:integer;
begin
	pes:=0;
	for i:=1 to n do
		for j:=n-i+2 to n do
			pes:=pes+x[i,j];
      bot_sum:=pes;
end;

var
	A:matrix;
  i,j,n:byte;
BEGIN
clrscr;
writeln('enter n');
readln(n);
for i:=1 to n do
for j:=1 to n do
begin
write('vvedite a[',i,',',j,']=');
readln(A[i,j]);
end;
	out_matrix(A);
	writeln(top_sum(A)/bot_sum(A):0:5);
	readln;
end.
не пашет
че та

invalid floating point operation

Последний раз редактировалось Stilet; 06.07.2009 в 09:02.
tipson вне форума
Старый 05.07.2009, 17:06   #48
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Да выкинь все нафиг, оставь begin и end. Никаких ошибок не будет.
puporev вне форума
Старый 05.07.2009, 19:50   #49
tipson
Пользователь
 
Регистрация: 01.04.2009
Сообщений: 76
По умолчанию

создание матрицы я не выкинул, а просто сделал не в виде функции а в виде обычного цикла
в самом конце проги
tipson вне форума
Старый 05.07.2009, 20:08   #50
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Не умеешь, не лезь. Если n у тебя не константа, то размер матрицы должен передаваться из программы в процедуры и функции как параметр, иначе никакой матрицы нет, а есть безвоздушное пространство и все числа которые ты вводишь не знают куда им идти.
Короче матрицу ты не создаешь и не спорь, если не рубишь, а спрашивай, и не обижайся, если пошлют. Это как нищий на паперти, проявит гордость, ничего не заработает.
Код:
program prog1;
uses crt;
type
matrix = array[1..20,1..20] of integer;
procedure out_matrix(var X:matrix;n:byte);
var
i,j:byte;
begin
	for i:=1 to n do begin
		for j:=1 to n do
			write(X[i,j]:4);
		writeln;
	end;
end;

function top_sum(X:matrix;n:byte):integer;
var
  i,j:byte;
  res:integer;

begin
res:=0;
for i:=1 to n do
for j:=1 to n-i do
res:=res+x[i,j];
top_sum:=res;
end;

function bot_sum(X:matrix;n:byte):integer;
var
 	i,j:byte;
  pes:integer;
begin
pes:=0;
for i:=1 to n do
for j:=n-i+2 to n do
pes:=pes+x[i,j];
bot_sum:=pes;
end;

var
	A:matrix;
  i,j,n:byte;
BEGIN
clrscr;
writeln('enter n');
readln(n);
for i:=1 to n do
for j:=1 to n do
begin
write('vvedite a[',i,',',j,']=');
readln(A[i,j]);
end;
	out_matrix(A,n);
	writeln(top_sum(A,n)/bot_sum(A,n):0:5);
	readln;
end.
puporev вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с текстом fakir9999 Общие вопросы Delphi 3 04.06.2009 16:28
работа с текстом в си++ Sjava Помощь студентам 3 21.12.2008 11:54
Работа с текстом vinimixer Общие вопросы Delphi 0 07.11.2008 21:19
Работа с текстом.[C] DropYourWeapon Общие вопросы C/C++ 3 15.10.2008 21:55
Работа с текстом Sanek_ntsk Общие вопросы C/C++ 10 12.01.2008 19:42