Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Заказы "Сделайте все за меня"


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

Задача для турбо Паскаля 7.0:

По исходным строкам а$ и b$ вывести слова, входящие в строку a$, но не входящие в строку b$ и наоборот. Вывести их.

буду очень благодарен если сможете помочь=)

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

Построение трех-мерной поверхности, на C#

Дано уравнение цилиндрической поверхности:_______.JPG

Нужно построить данную поверхность на экране. Я с 3D графикой раньше не работал, и задачка поставила меня в тупик, но решить надо.

Сделал функцию которая находит множество корней данного уравнения, ее результаты можно взять из массива this.korni (тип свой: coord размер изначально не задан)

Описание типа coord:

public struct coord{ float x; float y; float z;}

Нужно построить трехмерную модель данной поверхности на экране в стандартном математическом положении осей (x - под углом 45, направлен на смотрящего, y - направлен вправо, z - направлен вверх)

нужно учесть, что корни найдены с точностью до тысячных, а также могут быть найдены не все корни

Язык для реализации: C#

Желательно обойтись библиотеками .net но впринципе можно использовать и DirectX

Была идея просто вычислить проекцию поверхности на одну из координатных плоскостей, но пока не пробовал реализовывать, так как есть подозрения, что потеряется видимость объема.

Зарание спасибо!

post-36983-1241593843_thumb.jpg

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

BaPeHbE:

const t=' '; var c,s:string; a:array[1..2]of string; i,k:integer;beginfor i:=1 to 2 do begin write('string',i:2,' ? '); readln(a[i]); a[i]:=concat(t,a[i],t) end; for i:=1 to 2 do begin writeln; s:=a[i]; while length(s)>1 do begin k:=pos(t,s); c:=copy(s,1,k); if pos(c,a[3-i])=0 then write(c,t); delete(s,1,k) end end;writeln; readlnend.
Ссылка на комментарий
Поделиться на другие сайты

koketka15:

uses Graph,CRT;var i,m,GrDriver,GrMode:integer;beginWrite('m ? '); Readln(m); GrDriver:=VGA; GrMode:=VGAHi; InitGraph(GrDriver,GrMode,'\TP\BGI');if GraphResult<>GrOk then begin WriteLn('Graphic driver?'); i:=Ord(ReadKey); Halt end;SetBkColor(White); SetLineStyle(0,0,ThickWidth); Randomize;for i:=1 to m do begin SetColor(Random(14)+1); Arc(320,240,Round(360/m*(i-1)),Round(360/m*i),200) end;i:=Ord(ReadKey)end.
Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

в паскале: построить совокупность n окружностей радиуса r,центрыы которых равномерно распределены по окружности радиусом r1/

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

vovka8888:

uses Graph,CRT;var i,j,m,n,k,GrDriver,GrMode:integer;beginWrite('n ? '); Readln(n); Write('Size of the field (0 - automatic)? '); Readln(m); GrDriver:=VGA; GrMode:=VGAHi; InitGraph(GrDriver,GrMode,'\TP\BGI');if GraphResult<>GrOk then begin WriteLn('Graphic driver?'); i:=Ord(ReadKey); Halt end;SetBkColor(LightGray); k:=0; if m=0 then m:=Round(400/(n+1));for i:=1 to n do begin if not Odd(n) then k:=14-k; for j:=1 to n do   begin k:=14-k; SetFillStyle(1,k+1); Bar(i*m,j*m,(i+1)*m,(j+1)*m) end end;i:=Ord(ReadKey)end.

P.S. Подправил раскраску для досок с нечетным размером доски.

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

vovka8888:

uses Graph,CRT;var i,j,m,n,k,GrDriver,GrMode:integer;beginWrite('n ? '); Readln(n); Write('Size of the field (0 - automatic)? '); Readln(m); GrDriver:=VGA; GrMode:=VGAHi; InitGraph(GrDriver,GrMode,'\TP\BGI');if GraphResult<>GrOk then begin WriteLn('Graphic driver?'); i:=Ord(ReadKey); Halt end;SetBkColor(LightGray); k:=0; if m=0 then m:=Round(400/(n+1));for i:=1 to n do begin k:=14-k; for j:=1 to n do   begin k:=14-k; SetFillStyle(1,k+1); Bar(i*m,j*m,(i+1)*m,(j+1)*m) end end;i:=Ord(ReadKey)end.

просят чтобы крупнее все было(((можно исправить плиз)

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

uses Graph,CRT;var i,j,m,n,k,GrDriver,GrMode:integer;beginWrite('n ? '); Readln(n); Write('Size of the field (0 - automatic)? '); Readln(m); GrDriver:=VGA; GrMode:=VGAHi; InitGraph(GrDriver,GrMode,'\TP\BGI');if GraphResult<>GrOk then begin WriteLn('Graphic driver?'); i:=Ord(ReadKey); Halt end;SetBkColor(LightGray); k:=0; if m=0 then m:=Round(480/n);for i:=1 to n do begin if not Odd(n) then k:=14-k; for j:=1 to n do   begin k:=14-k; SetFillStyle(1,k+1); Bar((i-1)*m+50,(j-1)*m,i*m+50,j*m) end end;i:=Ord(ReadKey)end.

Сделал рисование от верхнего края экрана. А вообще размер клетки доски и количество клеток по условию задачи задается пользователем, крупнее (хоть километр, правда, дисплей для такого размера еще поискать надо :() или мельче - выбирает он. А автоматический подбор размера клеток - мой бонус.

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

троль, очень вам благодарен=)

мм..а можете еще посмотрель одну задучу про шахматную доску?( турбо паскаль 7.0)

Дана шахматная доска 8X8 клеток. С клавиатуры вводим № вертикали и № горизонтали (целые числа). Определить место положения ферзя на доске и показать другим цветом поля, находящеся под угрозой ферзя.

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

BaPeHbE:

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

uses Graph,CRT;var i,j,m,n,k,x,y,GrDriver,GrMode:integer;beginWrite('n ? '); Readln(n);Write('x ? '); Readln(x); Write('y ? '); Readln(y);GrDriver:=VGA; GrMode:=VGAHi; InitGraph(GrDriver,GrMode,'\TP\BGI');if GraphResult<>GrOk then begin WriteLn('Graphic driver?'); i:=Ord(ReadKey); Halt end;SetBkColor(LightGray); k:=0; m:=Round(400/(n+1));for i:=1 to n do begin if not Odd(n) then k:=14-k; for j:=1 to n do  begin k:=14-k; SetFillStyle(1,k+1); Bar(i*m,j*m,(i+1)*m,(j+1)*m) end end;SetFillStyle(1,2);for i:=1 to n do for j:=1 to n do  begin  if(i=x)or(j=y)or(x+y=i+j)or(x-y=i-j) then Bar(i*m,j*m,(i+1)*m,(j+1)*m) end;SetFillStyle(1,14); Bar(x*m,y*m,(x+1)*m,(y+1)*m); i:=Ord(ReadKey)end.

В качестве бонуса - размер доски может быть любым, вводится в начале программы. Если мешает, то заменить ввод n на оператор n:=8;

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

..к великому моему сожелению я в данной специфике....полный ноль =(

допиши если не сильно сложно.. ну а если сложно...значит такова судьба-злодейка =)

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

BaPeHbE:

Да..а... :( А зачеты автоматом ставят за явку на зачет?

uses Graph,CRT;

var i,j,m,n,k,x,y,GrDriver,GrMode:integer;

begin

n:=8;

Write('x ? '); Readln(x); Write('y ? '); Readln(y);

GrDriver:=VGA; GrMode:=VGAHi; InitGraph(GrDriver,GrMode,'\TP\BGI');

if GraphResult<>GrOk then begin WriteLn('Graphic driver?'); i:=Ord(ReadKey); Halt end;

SetBkColor(LightGray); k:=0; m:=Round(400/(n+1));

for i:=1 to n do begin if not Odd(n) then k:=14-k; for j:=1 to n do

begin k:=14-k; SetFillStyle(1,k+1); Bar(i*m,j*m,(i+1)*m,(j+1)*m) end end;

SetFillStyle(1,2);

for i:=1 to n do for j:=1 to n do

begin if(i=x)or(j=y)or(x+y=i+j)or(x-y=i-j) then Bar(i*m,j*m,(i+1)*m,(j+1)*m) end;

SetFillStyle(1,14); Bar(x*m,y*m,(x+1)*m,(y+1)*m); i:=Ord(ReadKey)

end.

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

эх если бы зачет..а то экзамен забабахали..=(

а я и правда в этом ничего не шарю...не посоветуешь какую-нидудь литературу что бы подоступнее объяснялось?

(извините если не в тему..)

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

Народ ищо раз потревожу если не трудно подскажите.

вот задача: Получить все размещения из 10 элементов 1, 2,..., 10 по 3 в каждом. Размещением называется выборка из п указанных элементов три неповторяющихся элемента.

unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;const Nums = 8; type TForm1 = class(TForm) Button1: TButton;Button2: TButton;Panel1: TPanel;ListBox1: TListBox;procedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject); private{ Private declarations } public{ Public declarations }Num: array [1..Nums] of integer;procedure PlaceNum(i: integer); end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.PlaceNum(i: integer);var j, x: integer; s: string;begin for j := 1 to Nums do	   beginNum[i] := j;x := 1;			   while (x < i) and		     (Num[x] <> Num[i]) do	 	Inc(x);				if x = i then		   begin  if i = Nums then		 	begin	  s := '';					  for x := 1 to Nums do s := s + IntToStr(Num[x]) + '  ';	  ListBox1.Items.Add(s);   	end	else PlaceNum(i + 1); end end;end;procedure TForm1.Button1Click(Sender: TObject);begin ListBox1.Clear; PlaceNum(1);   end;procedure TForm1.Button2Click(Sender: TObject);begin Close();end;end.

но у меня получается все ПЕРЕСТАНОВКИ из 8 чисел....а надо как в задаче...в условии.... :(

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

AutoGen: попробуйте заменить

const Nums = 8;

на

const Nums = 10;
Изменено пользователем Лорд Дмитрий
Ссылка на комментарий
Поделиться на другие сайты

AutoGen: попробуйте заменить

const Nums = 8;

на

const Nums = 10;

Да нет...я плохо описал смысл задачи....... у меня получается 1.2.3.4.5.6.7.8 потом 1.2.3.4.5.6.8.7 и так далее пока не будут выведены ВСЕ возможные варианты из 8 чисел. а по условию надо чтобы из 10 чисел были показаны все размещения из 3 элементов......т.е. массив 10 элементов, а в мемо рекурсивно выводятся например 1.2.3. потом 2.3.4. потом 3.4.5 потом 4.5.6 и так далее пока есть варианты размещений, пожалуйста поправте.

И исче как прикреплять файлы я исходники кинул бы.

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

Да нет...я плохо описал смысл задачи....... у меня получается 1.2.3.4.5.6.7.8 потом 1.2.3.4.5.6.8.7 и так далее пока не будут выведены ВСЕ возможные варианты из 8 чисел. а по условию надо чтобы из 10 чисел были показаны все размещения из 3 элементов......т.е. массив 10 элементов, а в мемо рекурсивно выводятся например 1.2.3. потом 2.3.4. потом 3.4.5 потом 4.5.6 и так далее пока есть варианты размещений, пожалуйста поправте.

И исче как прикреплять файлы я исходники кинул бы.

http://slil.ru/27521923 вот залил.

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

AutoGen:

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

const na=10; a:string[na]='1234567890';type ba=array[1..na]of byte;var b:ba; n,m,i,j,k:byte; procedure Output(var b:ba);begin for i:=1 to m do write(a[b[i]]:2); writeln end;procedure Perm(b:ba; n:byte);var i,k,j,x:byte;begin Output(b); repeati:=n; while(i>0)and(b[i]>=b[i+1])do dec(i); if i=0 then exit;for j:=i+1 to n do if b[j]>b[i] then k:=j;x:=b[i]; b[i]:=b[k]; b[k]:=x;for j:=i+1 to i+(n+1-i)div 2 do   begin x:=b[j]; b[j]:=b[n+i+1-j]; b[n+i+1-j]:=x end;Output(b); until falseend;begin n:=na; m:=3; for i:=1 to m do b[i]:=i; Perm(b,m); repeati:=m; while(i>0)and(b[i]=n-m+i)do dec(i);if i=0 then begin readln; exit end;inc(b[i]); for j:=i+1 to m do b[j]:=b[j-1]+1; Perm(b,m); until falseend.

Для ясности печати тут вместо 10 выводится цифра 0, чтобы все элементы занимали по одной позиции, можно прямо при выводе в процедуре Output заменять 0 на 10, если это надо. Delphi у меня не установлен, поэтому всё в консоли.

P.S. Слегка изменил - оптимизировал.

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

Помогите решить лабороторную на С++, я его практически незнаю, время поджимает

1.1)Сформировать одномерный массив целых чисел, используя датчик случайных чисел.

2)Распечатать полученный массив.

3)Удалить все элементы равные 0.

4)Добавить после первого четного элемента массива элемент со значением M[ I-1 ]+2.

5)Распечатать полученный массив.

При выполнении работы используются статические массивы. Для организации статических массивов с псевдопеременными границами необходимо объявить массив достаточно большой длины, например, 100 элементов:

int N=100;

int a[N];

Затем пользователь вводит реальную длину массива (не больше N) и работает с массивом той длины, которую он сам указал. Остальные элементы (хотя память под них и будет выделена) не рассматриваются.

2) При уменьшении или увеличении длины массива необходимо изменять его реальную длину.

2. Написать процедуру для суммирования матриц. С ее помощью сложить исходную матрицу и транспонированную (т. е. полученную поворотом исходной на 90 ).

Используя функции, решить указанную в варианте задачу. Массив должен передаваться в функцию как параметр.

3. Напечатать все слова, которые не содержат гласных букв.

Задана строка, состоящая из символов. Символы объединяются в слова. Слова друг от друга отделяются одним или несколькими пробелами. В конце текста ставится точка. Текст содержит не более 255 символов. Выполнить ввод строки, используя функцию Gets(s) и обработку строки в соответствии со своим вариантом.

4. Написать перегруженные функции и основную программу, которая их вызывает.

a) для умножения целых чисел;

б) для умножения комплексных чисел.

5. Используя функции с переменным числом параметров.

6. Написать функцию sum с переменным числом параметров, которая находит сумму чисел типа int по формуле:

S=a1*a2+a2*a3+a3*a4+. . . . .

Написать вызывающую функцию main, которая обращается к функции sum не менее трех раз с количеством параметров 5, 10, 12

7. Сформировать двоичный файл из элементов, заданной в варианте структуры, распечатать его содержимое, выполнить удаление и добавление элементов в соответствии со своим вариантом, используя для поиска удаляемых или добавляемых элементов функцию. Формирование, печать, добавление и удаление элементов оформить в виде функций. Предусмотреть сообщения об ошибках при открытии файла и выполнении операций ввода/вывода.

1. Структура "Государство":

- название;

- столица;

- численность населения;

- занимаемая площадь.

Удалить все элементы, у которых численность меньше заданной, добавить элемент после элемента с указанным номером.

8. Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию. Выполнить задание.

Скопировать в файл F2 только те строки из F1, которые начинаются и заканчиваются на одну и ту же букву.

Подсчитать количество символов в F2.

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

1. Ввести размер массива;

2.Сформировать массив с помощью операции new или библиотечных функций malloc (calloc);

3.Заполнить массив (можно с помощью датчика случайных чисел);

4.Выполнить задание варианта, сформировать новый массив(ы)-результат(ы);

5.Напечатать массив(ы)-результат(ы);

6.Удалить динамические массивы с помощью операции delete или библиотечной функции free.

Сформировать одномерный массив. Удалить из него К элементов, начиная с заданного номера, добавить элемент с заданным ключом;

10. Написать функцию для создания списка. Функция может создавать пустой список, а затем добавлять в него элементы.

Написать функцию для печати списка. Функция должна предусматривать вывод сообщения, если список пустой.

Написать функции для удаления и добавления элементов списка в соответствии со своим вариантом.

Выполнить изменения в списке и печать списка после каждого изменения.

Написать функцию для записи списка в файл.

Написать функцию для уничтожения списка.

Записать список в файл, уничтожить его и выполнить печать (при печати должно быть выдано сообщение "Список пустой").

Написать функцию для восстановления списка из файла.

Восстановить список и распечатать его.

Уничтожить список.

- Записи в линейном списке содержат ключевое поле типа int. Сформировать однонаправленный список. Удалить из него К элементов, начиная с заданного номера, добавить элемент перед элементом с заданным ключом;

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

AutoGen:

А можно узнать где эти готовые алгоритмы можно посмотреть)))) на будущее)))
Это почти то же, что спросить, где найти учебник или справочник по формулам математики. По сути, алгоритмика - область математики. Таких книжек и сайтов не перечесть. Классикой считается трехтомник Дональда Кнута "Искусство программирования", если брать русскоязычных авторов, могу назвать еще, скажем, Станислава Окулова "Программирование в алгоритмах" или Михаила Долинского "Алгоритмизация и программирование на Turbo Pascal", из сайтов - ну, например, algolist.manual.ru

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

const na=10; var b:array[1..na]of byte; n,m:byte; s:set of 1..na;procedure Perm(t:byte);var i,j:byte;begin for i:=1 to n doif not(i in s) then  begin	s:=s+[i]; b[t]:=i;	if t<m then Perm(t+1)	else begin for j:=1 to m do write(b[j]-1:2); writeln end;	s:=s-[i]  endend;begin n:=na; m:=3; s:=[]; Perm(1); readln end.

Вообще стандартные алгоритмы, как и, скажем, формулы тригонометрии или комбинаторики, надо стараться брать готовые.

ketrin:

Тут всё же не вычислительный центр, если что-то не получается, это одно, а приводить задачи десятками потому что не нашлось времени самому за них сесть - это другое. Времени нехватает у всех.

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

Троль, посмари плиз че я не прально сделал..... ну плиииз.

:1eye: :) :)

unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;const Na = 10; //a:string[na]='1234567890'; type TForm1 = class(TForm) Button1: TButton;Button2: TButton;Panel1: TPanel;ListBox1: TListBox;procedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject); private{ Private declarations } public{ Public declarations }procedure Perm(t:byte); end;var Form1: TForm1;  b:array[1..na]of byte; n,m:byte;  s:set of 1..na;implementation{$R *.dfm}procedure Perm(t:byte);var i,j:byte;begin for i:=1 to n doif not(i in s) then  begin	s:=s+[i]; b[t]:=i;	if t<m then Perm(t+1)	else begin for j:=1 to m do	  s:=s-[i];	  ListBox1.Items.Add(b[j]-1:2);  end ;end;procedure TForm1.Button1Click(Sender: TObject);begin ListBox1.Clear;n:=na;m:=3;s:=[];perm(1);end;procedure TForm1.Button2Click(Sender: TObject);begin Close();end;end.
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу



×
×
  • Создать...