TWINc

Помощь в решении заданий по программированию.

Рекомендованные сообщения

Ребят, помогите с прогой: "Ввести Массив. Ввести число. Найти есть ли это число в данном массиве". Сделать хочу без рекурсии. Вот что пока получилось :

program Array_Search;

 

{$APPTYPE CONSOLE}

 

uses

SysUtils;

type H=array[1..10] of integer;

var A:H;

N,T,min,buf,k : integer;

procedure VvodN(Var T:integer);

var Io:word;

begin

repeat

writeln('Enter the size of your array: ');

{$I-}readln(T);{$I+}

Io:=ioresult;

If (Io<>0)or(T<=0)or(T>10) then writeln('You are mistaken !!!');

until (Io=0)and(T>0)and(T<=10);

end;

procedure VvodM(Var T:integer);

var Io:word;

begin

repeat

writeln('Enter A[',N,'] :');

{$I-}readln(T);{$I+}

Io:=ioresult;

If (Io<>0) then writeln('You are mistaken !!!');

until (Io=0);

end;

procedure VvodZ(Var T:integer);

var Io:word;

begin

repeat

writeln('Enter number you want to search: ');

{$I-}readln(T);{$I+}

Io:=ioresult;

If (Io<>0) then writeln('You are mistaken !!!');

until (Io=0);

end;

procedure Sort1(Var T : integer);

var i,j : integer;

begin

for i:=1 to T do

begin

min:=i;

for j:=i+1 to T do

if A[j]<A[min] then min:=j;

buf:=A;

A:=A[min];

A[min]:=buf;

end;

end;

procedure searchK(k,T : integer; A:H);

Var p,l : integer;

flag : boolean;

begin

flag:=true;

If (A[1]>k) or (A[T]<k) then writeln('There is not ',k,' in this array')

else begin

p:=(1+T) div 2;

if k>A[p]

then begin

for l := p to T do

if k = A[l] then

begin

writeln(k,' has been founded!!!');

flag:=true;

end

else flag:=false;

end

else if k<A[p]

then begin

for l := 1 to p do

if k = A[l] then

begin

writeln(k,' has been founded!!!');

flag:=true;

end

else flag:=false;

end

else writeln(k, ' has been founded!!!');

end;

if flag=false then writeln('There is not ',k,' in this array');

end;

begin

VvodN(T);

writeln('=======================================================');

for N:=1 to T do

begin

VvodM(A[N]);

writeln('=======================================================');

end;

Writeln('Your array :');

for N:=1 to T do

writeln('A [',N,'] = ',A[N]);

writeln('=======================================================');

sort1(T);

Writeln('Your SORTED array :');

for N:=1 to T do

writeln('A [',N,'] = ',A[N]);

writeln('=======================================================');

VvodZ(k);

writeln('=======================================================');

searchK(k,T,A);

 

readln;

end.

Вроде работает, но на некоторых тестах выдает, что число найдено, но в тоже время не найдено(( Взаранее спасибо за помощь!

аммм если я правельно понял, нужно ввести 10 чисел в массив, потом ввести еще одно число и проверить есть ли оно в массиве? если да, то помоему тут слишком все запутанно. делается гораздо легче

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну почти, сначала вводишь размерность массива, потом заполняешь массив(10 - это максимальное число элементов в массиве). Потом вводим число и ищем его. Я уже рекурсией сделал, так как все-таки это удобнее. И еще, никто не знает хорошие книги по delphi(сейчас работаю с книгой Фаронова)? Желательно чтобы в книге как раз-таки освещалась работа в консольном режиме.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вопрос такой. Возможно-ли в файл конфигурации app.config добавить несильную сборку? То есть у меня есть приложение. Нет его исходного кода. И есть простенькая сборка несильная. Можно-ли в файл настройки этого приложения прописать что-нить (типа qualifyAssembly) чтобы приложение при запуске подключало эту сборку? Не хочется из совсем простой сборки делать сильную и добавлять её в GAC. В нете что-то читал про это но там речь шла про загрузку с помощью Assembly.Load. Но у меня такой возможности просто нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ребят у меня вопрос. Люди делают же как-то keygen"ы... тоесть программу которая генерирует код. Как они находят шифр?

может кто подсказать???

Вот например коды в столбик, какая может быть закономерность для генерации новых кодов???

7669-1127-6889

4734-5479-8311

3288-3448-2738

3764-1316-0428

5353-9192-9751

0401-2498-5892

1651-8229-4842

6341-6718-6074

3146-8989-1510

8575-5431-2385

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ребят у меня вопрос. Люди делают же как-то keygen"ы... тоесть программу которая генерирует код. Как они находят шифр?

может кто подсказать???

Вот например коды в столбик, какая может быть закономерность для генерации новых кодов???

 

Закономерность может быть абсолютно любая, от фантазии того кто писал систему защиты.

Она так же может учитывать то какое имя комьютера у тебя установлено,

от конфигурации железа и проче и прочее и прочее.

 

Для того что бы понять как именно извратился программист защищая свой код, необходимо

дизассемблировать программу и проанализировать ее код в ассемблере . После этого уже пишется кейген.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну да. Я думаю так и делают. Анализируют код. По максимуму. Ищут как получаются ключи. И пробуют по аналогии подсунуть свои ключи. Например может использоватся имя компа, сетевой адрес и прочее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Закономерность может быть абсолютно любая, от фантазии того кто писал систему защиты.

Она так же может учитывать то какое имя комьютера у тебя установлено,

от конфигурации железа и проче и прочее и прочее.

 

Для того что бы понять как именно извратился программист защищая свой код, необходимо

дизассемблировать программу и проанализировать ее код в ассемблере . После этого уже пишется кейген.

В свое время читал, как делаются кейгены (а точнее спец ключи) с помощью осциллографа и метода фурье

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Помогите пожалуйста прогу в QBasic.

модулировать калькулятор с действиями - + * /

есть блок схема

post-205477-1227306506_thumb.jpg ----сама задача задачи

 

post-205477-1227306715_thumb.jpg ----------блок схема

Изменено пользователем iliya88

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

кто может это написать на бейсике?Хелп пипл)))вообще не мне просто попросили))

________________________

151. Дан текст, состоящий из n строк, 2  n  10. В каждой строке слова разделены произвольным количеством пробелов. Пробелы могут стоять перед первым словом и за последним. Проверить, являются ли слова в каждой строке текста упорядоченными по алфавиту. Если нет, то упорядочить их, не делая различия между строчными и прописными буквами. У каждого слова первую букву заменить прописной, а остальные буквы сделать строчными. Исходный и преобразованный тексты вывести в различные окна списка. Для решения задачи составить следующие подпрограммы:

 процедуру ввода исходного текста;

 процедуру вывода текста в окно списка;

 логическую функцию проверки упорядоченности слов в одной строке;

 функцию преобразования одного слова;

 процедуру сортировки слов в строке.

_________________________

138. О каждом из n товаров, 3  n  20, известно: название, стоимость производства единицы товара, цена единицы товара. Составить список товаров, производство которых принесет максимальную прибыль. Известно, что начальный капитал равен k. Значение параметра k задается с клавиатуры. Для каждого товара в списке указать объем произведенного товара. Полученный список упорядочить по алфавиту. Исходные данные и полученные результаты вывести в различные окна списка. Для решения задачи составить следующие подпрограммы:

 процедуру ввода массива исходных данных;

 процедуру вывода массива в окно списка;

 метод формирования строки для вывода информации;

 метод вычисления прибыли от производства одного товара;

 процедуру формирования нового списка;

 процедуру сортировки списка товаров.

Примечание. Для решения задачи использовать следующую структуру:

Private Structure Товар

Public Название As String

Public СтоимостьПроизводства As Single

Public Цена As Single

Public Function ФормированиеСтроки() As String

Public Function Прибыль() As Single

End Structure

_______________________________________

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Редактор оперативной памяти (ОП) в режиме дампа в шестнадцатеричном виде. резидентная программа должна выгружаться по ключу “/U” или “/u” при повторном запуске в командной строке. причем впримечании написано - Вывести регистры

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
readkey юзай
Спс, а то я раньше в конце программы задавал лишнюю переменную :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Помогите с простенькой задачей на рекурсию по С++.

"Вычислить N чисел в последовательности фиббоначи 1,1,2,3,5....

N меньше 100"

Буду очень благодарен.

 

 

уже сам сделал)))

 

#include "stdafx.h"

#include <iostream>

 

 

long fib (int n);

 

void main()

{

using namespace std;

int n;

for ( n=0; n < 100; n++)

cout<<" "<<fib(n);

}

long fib (int n)

{

if ((n == 0) || (n ==1))

return 1;

else

return (fib (n-1) + fib (n-2));

}

Изменено пользователем vps

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Привет народ,очень нужна помощь в програмировании на с++,препод тупо на нас забил,а что бы получить 3 на экзамене надо принести вот эти задания http://s61.radikal.ru/i173/0812/80/f1eeec81881e.jpg если кто нибудь сможет сделать - это будет просто превосходно,заранее спасибо =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Здесь не решение задач а помощь в решении. К тому же таких примеров прсто полно. Чего там сложного.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Здесь не решение задач а помощь в решении. К тому же таких примеров прсто полно. Чего там сложного.

Да понимаю,глупо оправдываться,но я учусь в высшем учебном заведении и видел препода по програмированию раза 3-4 наверно.Вобщем неважно,вот наработки 1 номера.

#include<iostream>

 

int main()

{

int m[6][8];

 

for(int i=0; i<6; ++i)

for(int j=0; j<8; ++j)

std::cin >> m[j];

 

for(int i=0; i<3; ++i)

for(int j=0; j<8; ++j)

{

m[j] = m[j] + m[i+3][j];

m[i+3][j] = m[j] - m[i+3][j];

m[j] = m[j] - m[i+3][j];

}

return 0;

}

 

 

и вот номер 2 еще попытался

# include <iostream>

int main ()

{

int m[15]={2,4,6,8,10,12,14,16,18,20,22,24,26,28,30];

int a;

a=2;

cin>>a;

int S;

S=m[15]/2;

cout<<" 2 это НОК"<<endl;

}

return (1)

endl;

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ты вместо того чтобы менять левую и правую половины меняешь местами нижннюю и верхнюю. Ведь первый индекс массива это номер строки. Так что должо быть типа того:

 

for(int i=0; i<6; i++)

for(int j=0; j<4; j++)

{

m[j] = m[j+4];

m[j+4] = m[j] - m[j+4];

m[j] = m[j] - m[j+4];

}

 

Во 2м номере у тебя не будет работать потому что массив из 15 элементов поэтому элемента с индексом 15 не существует. А реализовывать типа того:

 

NOK_otv = NOK(m[0], m[1]);

for (i = 2; i < 15; i++)

NOK_otv = NOK(NOK_otv, m);

 

То есть сначала находим НОК 1 и 2 элементов (N1). Потом ищем НОК 3го элемента и N1 (N2). Потом ищем НОК 4го элемента и N2 (N3) и так дальше до конца массива. Алгоритм нахождения НОК для 2х чисел найдёшь сам и просто оформишь его в виде функции NOK от 2х аргументов.

Изменено пользователем IRQ

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 номер не понимаю....просто не понимаю записей этих,если не в падлу можеш оформить как должно быть?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А чего там непонятно? Тебе надо просто добавить функцию расчёта НОК для 2 чисел. Для неё надо будет ещё одну добавить для расчёта НОД. Как делать и использовать функции прочитай в нете. Это просто. А код для расчёта я уже написал. Тее только сокпировать реализацю надо. В нете полно этих реализаций. На чём только нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

NOK_otv = NOK(m[0], m[1]);

for (i = 2; i < 15; i++)

NOK_otv = NOK(NOK_otv, m);

 

т.е смотри я должен за место 0 и 1 начать подставлять 2 и 3,а когда перйду к 10-11 то функцию для 2 чисел найти,правильно?Т.е

 

 

NOK_otv = NOK(m[2], m[3]);

for (i = 2; i < 15; i++)

NOK_otv = NOK(NOK_otv, m);

итд

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да нет это весь вод который надо написать. Один раз. То есть сначала ты ищешь НОК 1 и 2 элемента (индексы 0 и 1). А потом ищешь НОК между этим НОК и 3м элементом. Нашёл. Берёшь этот НОК и 4й элемент и ищешь их НОК. И так дальше для всех остальных. То есть надо написать только

 

NOK_otv = NOK(m[0], m[1]);

for (i = 2; i < 15; i++)

NOK_otv = NOK(NOK_otv, m);

 

Я точно не уверен что это правильно но по идее так и есть. И вместо 0 и 1 не надо потом ничего подставлять. Всё что надо подставится само в цикле.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Помоги пожалуйста, мне завтра надо сдавать струкруты и алгоритмы обработки данных, а прогу не доделал)

 

Надо найти кратчайший путь во взвешеном графе, чтобы в файле мы могли забить таблицу смежности с весами графов, и в другом файле был показан кратчайший путь.

 

Вот у мну есть модуль по нахождению кратчайшего пути но до конца доделать не получается прогу...

 

 

 const int INF = 100*1000*1000;

int main()
{
// считываем матрицу графа
int n;
cin >> n;
vector < vector<int> > g (n, vector<int> (n));
for (int i=0; i<n; i++)
	for (int j=0; j<n; j++)
	{
		int t;
		cin >> t;
		g[i][j] = t ? t : INF;
	}


// храним две матрицы: для текущего шага и от предыдущего шага
vector<vector<int> > d (n), d2;
d2 = g;
for (int i=0; i<n; i++)
	d[i].resize (n+1);
for (int k=0; k<n; k++)
{
	for (int i=0; i<n; i++)
		for (int j=0; j<n; j++)
			d[i][j] = min (d2[i][j], d2[i][k]+d2[k][j]);
	d.swap (d2);
}
d.swap (d2);

// выводим результат
for (int i=0; i<n; i++)
{
	for (int j=0; j<n; j++)
		cout << (d[i][j]<INF ? d[i][j] : 0) << ' ';
	cout << endl;
}
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну реализации алгоритма Дейсктры например полно в нете. На многих языках. Сам на Паскале делал. Под весом имеются ввиду веса рёбер? А то "таблицу смежности с весами графов" странно как-то звучит. Хотя бы потому что граф один. Ну и можно не заморачиваться с векторами. Простых массивов вполне хватит. И что-то я не помню чтобы надо было 2 массива хранить. Там же помойму в одном массиве граф а другой массив одномерный просто с расстояниями до вершин.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

IRQ,

Ну да, за вес принимается ребро) А этот модуль как раз в инете нашел)

Слушай, а то что ты на паскале делал у тебя не осталось? Просто препаду пофигу на паскале или на С я ему прогу принесу...

 

А в инете ничего стоящего не нашел...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну вообще-то я сам делал по коду из нет аи там алгоритма ейкстры опять же просто завались. На чём угодно просто и понятно. Вот например чё-то с метро связанное Metro.rar Я не знаю как ты не нашёл ничего. Интересно что ты искал Оо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Привет всем. Помогите, пожалуйста решить задачу по программированию.

(Язык Turbo Pascal)

 

Дан рисунок:

 

1.GIF

 

Задание:

 

Используя технологию структурного программирования, разработать разветвляющуюся программу для решения индивидуальной задачи определения места нахождения на плоскости точки с заданными координатами.

 

Подробно:

 

1. Получить задание и выполнить постановку задачи: сформулировать условие, определить входные и выходные данные.

 

2. Разработать математическую модель: привести уравнения линий, ограничивающих выделенные штриховкой области, описать условия попадания точки в каждую область

 

3. Построить дерево подзадач для решения индивидуальной задачи.

 

4. Используя метод последовательных уточняющих шагов, получить серию схем алгоритмов решения задачи.

 

5. Составить описание алгоритма на псевдоязыке и программу на Турбо Паскале.

 

Пробовал набить код:

 

program point;
var x,y,r: real;
s: string;
begin
 write('Введите координаты точки и радиус: ');
 readln(x,y,r);
 if r=0
 then begin writeln('Вы ввели нулевой радиус');
		   Halt
	  end;
 if (x=0)and(y=0)
 then begin writeln('Точка в начале координат');
		   Halt
	  end;
 if x*x+y*y<r*r
 then if y<-x
	  then if y>0
		   then s:='В круге выше Ох, ниже линии'
		   else if x<0
				then s:='В круге ниже Ох левее Оу'
				else s:='В круге ниже линии правее Оу'
	  else s:='Вне обозначеных областей'
 else s:='Вне обозначеных областей';
 writeln('Точка лежит: ',s);
end.

 

Делал давно, так что не уверен, что код подходит к данному рисунку. Помогите с деревом и со схемами, пожалуйста.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Напиши плз программу и выложите тут.. очень надо.. задание на картинке...

post-247458-1232239166_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Люди плиз помогите с двумя задачами на блок схемы учусь в вузе контрольные горят незнаю че делать

вот условия:

Составить блок-схемы 2-х задач (одна на одномерные массивы, вторая на двумерные) и описать решение каждой задачи на конкретном примере, т.е. поработать за компьютер.

Задача на одномерные массивы:

 

Задан целочисленный одномерный массив a из n элементов.

 

Найти минимальное значение среди элементов, меньших заданного числа В, и расположенных до первого элемента, большего заданного числа А.

 

Задача на двумерные массивы:

 

Найти в матрице первую строку, все элементы которой отрицательны. Увеличить все элементы матрицы на значение первого элемента найденной строки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мда... Сессии.... :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас