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

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

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

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

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

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

Цитата:
Сообщение от Вавел из ГМТУ Посмотреть сообщение
Ты великий взломщик... Может ругается на отсутствие ";" в конце строки?
фуу... ненавижу хакеров...
а на счет проги, я просто пробел не там поставил
tipson вне форума
Старый 04.07.2009, 21:14   #22
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

вот, пришел... прокомментирую
Код:
{
 Процедура генерации перестановок
 s   - исходная строка
 new - фрагмент сгенерированной строки 
 }
procedure change(s,new:string);
var
	t1,t2:string; //временные переменные, значение аналогично значениям параметров ф-ции
	i:byte;
begin
	t1 := s; t2 := new;
	if (length(t1) > 1) then //если длина исходной строки больше одного символа
		for i:=1 to length(t1) do begin 
			t2 := t2 + t1[i]; //помещаем i-й символ исходной строки в t2
			delete(t1,pos(t1[i],t1),1); //удаляем i-й символ из исходной строки
			change(t1,t2); //рекурсивно вызываем функцию change
			t1 := s; t2 := new; //восстанавливаем переменные в первоначальное значение
		end
	else //когда длина строки становится равной 1
		writeln(t2,t1); //выводим полученную перестановку
end;

var
	s,new:string;
begin
	new := ''; //изначально переменная пуста
	readln(s); //считываем строку
	change(s,new); 
	readln;
end.
Не знаю, будет ли вам понятно... Проще сделать, чем объяснить... Вся суть в рекурсии... Если сможете сформулировать вопрос, что вам конкретно непонятно, я постараюсь ответить как можно более доходчиво
Uguu~
__STDC__ вне форума
Старый 04.07.2009, 21:52   #23
tipson
Пользователь
 
Регистрация: 01.04.2009
Сообщений: 76
По умолчанию

Код:
t2 := t2 + t1[i]; //помещаем i-й символ исходной строки в t2
если у нас t1 Это просто символьная переменная откуда там '[i]'ый элемент? (раз это не массив)
tipson вне форума
Старый 04.07.2009, 21:53   #24
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

не путайте символьные и строковые переменные... t1 - строковая переменная... строка - это массив символов.. поэтому мы и можем обращаться к отдельным элементам строки по индексам
Uguu~
__STDC__ вне форума
Старый 04.07.2009, 21:54   #25
tipson
Пользователь
 
Регистрация: 01.04.2009
Сообщений: 76
По умолчанию

аааа
понятно
плс НЕ обращайся во мн числе

аа все вроди понятно
спасибо
+ тебе

посмотри плс сюда
тут мне тоже с кодом помогли но нужно как нить внедрить туда процедуры

Последний раз редактировалось Stilet; 06.07.2009 в 09:00.
tipson вне форума
Старый 04.07.2009, 22:12   #26
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

я не знаю, что там у вас, не хочу разбираться.. я бы сделал так
Код:
const
	n = 3;
	
type
	matrix = array[1..n,1..n] of integer;
	
procedure fill_matrix(var X:matrix);
var
	i,j:byte;
begin
	randomize;
	for i:=1 to n do
		for j:=1 to n do
			X[i,j] := random(10);
end;
	
procedure out_matrix(X:matrix);
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):integer;
var
	i,j:byte;
begin
	top_sum := 0;
	for i:=1 to n do 
		for j:=1 to n-i do
			inc(top_sum,x[i,j]); 
end;

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

var
	A:matrix;
BEGIN
	fill_matrix(A);
	out_matrix(A);
	writeln(top_sum(A)/bot_sum(A):0:5);
	readln;
END.
Uguu~
__STDC__ вне форума
Старый 04.07.2009, 22:34   #27
tipson
Пользователь
 
Регистрация: 01.04.2009
Сообщений: 76
По умолчанию

ГУРУ
еще раз спс
токо вот
Код:
inc(top_sum,x[i,j]);
пишет invalid variable reference
tipson вне форума
Старый 04.07.2009, 22:37   #28
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

ну измените так
Код:
top_sum := top_sum + x[i,j];
Uguu~
__STDC__ вне форума
Старый 04.07.2009, 22:48   #29
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Цитата:
Сообщение от tipson Посмотреть сообщение
ГУРУ
еще раз спс
токо вот
Код:
inc(top_sum,x[i,j]);
пишет invalid variable reference
Инкремировать (прибавить один) можно только одной переменной одновременно, так:

Код:
inc(top_sum);
или так:

Код:
inc(x[i,j]);
profi вне форума
Старый 04.07.2009, 22:51   #30
tipson
Пользователь
 
Регистрация: 01.04.2009
Сообщений: 76
По умолчанию

а теперь пишет что там должен быть знак "<"
tipson вне форума
Закрытая тема


Купить рекламу на форуме - 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