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

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


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

ArtysПонятно почему. В твоих примерах пирамидки меняют форму. То они вписываются в квадрат, то в прямоугольник 1:2. Я исходил из формы, вписывающейся в прямоугольник, согласно твоему примеру

Честно говоря я не особо понимаю о чем ты;на картинках есть почти все возможные вариации,просто попробуй просто представить это все,4 шарика,3 в пирамиде,одним бьем по ней,пирамида где угодно и как угодно,4-ый мяч на одной прямой с центральным мячом стол как 2 соединенных квадрата т.е ширина=а =>длина 2*а; пирамида может находиться где угодно на столе,нужно дать ответ сколько шаров попадет в лузы

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

Честно говоря я не особо понимаю о чем ты;на картинках есть почти все возможные вариации,просто попробуй просто представить это все,4 шарика,3 в пирамиде,одним бьем по ней,пирамида где угодно и как угодно,4-ый мяч на одной прямой с центральным мячом стол как 2 соединенных квадрата т.е ширина=а =>длина 2*а; пирамида может находиться где угодно на столе,нужно дать ответ сколько шаров попадет в лузы

На сколько я понимаю, если у тебя задаются координаты каждого шара в отдельности, то не факт что шары всегда будут стоять рядом, ведь можно их расставить по разным концам стола. Почему бы не задавать тогда координаты центра пирамиды и угол поворота её относительно какого-то базового положения?

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

На сколько я понимаю, если у тебя задаются координаты каждого шара в отдельности, то не факт что шары всегда будут стоять рядом, ведь можно их расставить по разным концам стола. Почему бы не задавать тогда координаты центра пирамиды и угол поворота её относительно какого-то базового положения?

Если это облегчит написание и решение задачи то можно и так попробовать.

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

Artys

просто попробуй просто представить это все,4 шарика,3 в пирамиде,одним бьем по ней
Твои пирамиды не так легко представить. Пирамида в биллиарде - треугольник из прижатых друг к другу шаров, то есть равносторонний треугольник. У тебя же ни в одном из примеров равносторонний треугольник шары не образуют. Да и разлетались бы такие шары под углом 60°, а не 90°. Далее, в твоем исходном примере (120,3380), (188,3380), (154,3346) был равнобедренный прямоугольный треугольник. Ну, правда, при диаметрах шаров 68, как у тебя было в исходном задании, у тебя третий шар пересечется с остальными двумя, зато при диаметре шара 48 все будет тип-топ, хотя между двумя шарами будет промежуток. Ну что ж, это лучше, чем пирамидка с шарами, влезающими друг в друга, и разлетаться такие шары всегда будут под углом 90°, как на рисунке.
пирамида где угодно и как угодно
Пирамидка у тебя на рисунках всегда в положении, когда одна из сторон треугольника параллельна борту биллиарда, и повернута всегда на угол, кратный 90°. Я для таких пирамидок и делал программу.

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

Так что предлагаю ограничиться исходным вариантом - пирамидками формы равнобедренного прямоугольного треугольника, у которого гипотенуза расположена параллельно любой из сторон стола. Если шары должны быть диаметра 68, а не 48, то можно при задании расположения шаров просто пропорционально увеличить расстояния между шарами.

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

И вот с этим помогите плиз ..... ГОРИТ !!!!!!!!!!

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

a) Сортировка выбором. Выбирается минимальный элемент в массиве и запоминается. Затем удаляется, а все последующие за ним элементы сдвигаются на один влево. Сам элемент заносится на освободившуюся последнюю позицию.

b) Шейкер-сортировка. Процесс движения в прямом и обратном направлении реализовать в виде одного цикла, используя параметр - направление движения (+1/-1) и меняя местами нижнюю и верхнюю границы просмотра.

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

benefit

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

a) Сортировка выбором. Выбирается минимальный элемент в массиве и запоминается. Затем удаляется, а все последующие за ним элементы сдвигаются на один влево. Сам элемент заносится на освободившуюся последнюю позицию.

b) Шейкер-сортировка. Процесс движения в прямом и обратном направлении реализовать в виде одного цикла, используя параметр - направление движения (+1/-1) и меняя местами нижнюю и верхнюю границы просмотра.

#include <iostream>#include <ctime>using namespace std;int shsort(int a[],int r){int p=0,k=1,m=0;while(p<r||k<1){ r-=k; for(int j=p+k-1;k*j<k*(r+k-1);j+=k)if(m++,a[j]>a[j+1])swap(a[j],a[j+1]); swap(p,r); k=-k;}return m;}int selsort(int a[],int r){int l=0,m=0;for(int i=l;i<r;i++){ int min=i; for(int j=i+1;j<r;j++)if(m++,a[j]<a[min])min=j; if(min!=i)swap(a[i],a[min]);}return m;}int main(){int n; cout<<"n? "; cin>>n;int *a=new int[n],*b=new int[n],msh,mse; srand(unsigned(time(NULL)));for(int i=0;i<n;i++){a[i]=rand()%1000; b[i]=a[i];}cout<<"source array:"<<endl; for(int i=0;i<n;i++){cout.width(4); cout<<a[i];} cout<<endl;msh=shsort(a,n); mse=selsort(b,n);cout<<"after shaker sort ("<<msh<<" comparisions):"<<endl;for(int i=0;i<n;i++){cout.width(4); cout<<a[i];} cout<<endl;cout<<"after select sort ("<<mse<<" comparisions):"<<endl;for(int i=0;i<n;i++){cout.width(4); cout<<b[i];} cout<<endl;cin.get(); cin.get();}

P.S. Подправил, заменив в shsort выражение j=p; на j=p+k-1;

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

n? 5

source array:

519 577 738 856 801

after shaker sort (15 comparisions):

-33686019 519 577 738 801

after select sort (10 comparisions):

519 577 738 801 856

Спасибо большое но что чуть не то ?

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

А с этой что делать не поможешь ?

Помогите сделать в c++

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

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

Artys

Ну и хорошо, условие было чрезвычайно бестолково описано.

benefit

Да, там мог быть случай, когда сравнение выйдет за предел массива, при тестах у меня все было нормально и я его не заметил. Исправь в shsort выражение j=p; на j=p+k-1;

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

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

Мне ещё 2-е задачи надо помоги уж а то ппц.... оч надо 9-ого сессия

1)Разработать функции работы с приоритетной очередью. Постановка запросов в очередь выполняется по приоритету, снятие - подряд из младших адресов ( начало очереди). Очередь организована на массиве со сдвигом после каждого чтения и на массиве со сдвигом после достижения границы памяти, которая выделена для очереди. Приоритет: min значение числового параметра, при совпадении параметров - LIFO

2)Сформировать двунаправленный список. Удалить из него первый элемент, добавить элемент в конец списка.

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

Тролль благадарю тебя :)

Как я понял программа вроде рекурсивно считает.

Но можешь ещё обяснить пару строчек ? вроде читал про функции эти но толком не чего не понял, объясни пожайлусто человечиским языком какую роль они тут играют))

#include<stdio.h>float number();float factor();float expr();int main(){puts("Enter number:"); printf("Resault = %f",expr()); getchar(); getchar();}float number(){int res=0; char c;while(1){[b]c=getchar(); if(c>='0'&&c<='9')res=res*10+c-'0'; else{ungetc(c,stdin)[/b]; break;}}return res;}float factor(){float x; char c=getchar();if(c=='('){[b]x=expr(); getchar();} else{ungetc(c,stdin); x=number();[/b]}c=getchar();switch©{   case '*':return x*factor();   case '/':return x/factor();   [b]default:ungetc(c,stdin); return x;[/b]}}float expr(){float x=factor();  char c=getchar();switch©{   case '+':return x+expr();   case '-':return x-expr();   default: ungetc(c,stdin); return x;}}
Ссылка на комментарий
Поделиться на другие сайты

vampir4eg

c=getchar(); if(c>='0'&&c<='9')res=res*10+c-'0'; else{ungetc(c,stdin)

Это формирование числа из символов, получаемых с клавиатуры. Получаем с клавиатуры символ, если это цифра, то корректируем число res, превращая код цифры в код однозначного числа (-'0') и добавляя это число к умноженному на 10 первоначальному. Если это не цифра, посылаем код символа обратно в буфер клавиатуры.

if(c=='('){x=expr(); getchar();} else{ungetc(c,stdin); x=number();}

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

default:ungetc(c,stdin); return x;

Если символ неподходящий (не * или / для factor), то посылаем его назад в буфер клавиатуры.

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

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

Теперь об интересном. :) Классы затянули - все хочется запихнуть в классы. Легко описываю класс, но иногда возникают проблемы с его реализацией. Наследование пока отложила в долгий ящик. Пробовала и динамические структуры. Возникло множество вопросов. Если Вы будете не против, то через две недели (наконец-то свобода!!!!) я Вам их активненько каждый день буду задавать.

Интересуют книги по ООП для лучшего понимания и использования абстракций. Может, подскажите?

Какой IDE Вы пользуетесь, чтоб писать код на Паскале?

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

@Тролль, добрый вечер! Сдала экзамен. Сдала хуже, чем могла.

И на старуху бывает проруха... Ничего, главное, что сдала :) Один мой школьный товарищ был очень талантливый парень, но учиться не любил, предпочитал тройки. Когда он получал четверку или пятерку, то говорил "проклятье, опять лишнее выучил!" ;) Двоек у него, правда, тоже не было... :)

Но это не о тех классах ;) В C++ классы - способ организации данных, раскладка имущества программы по коробочкам, шкатулочкам. Вообще программы пишутся на русском языке и потом переводятся на C++, он только система условных обозначений. Классы - это обозначения коробочек. Ну и система "коробочек" для частей программы позволяет легче ориентироваться в хозяйстве и не путать вещи. Но не надо считать, что главное в хозяйстве - коробочки ;)

Главное - придумать, как что-то сделать, а классы или просто функции - это уже оформление.

Насчет книжек по ООП советовать не возьмусь, не в курсе новых. Pascal... Вообще-то языка Pascal, как определенного языка, давно нет. Turbo Pascal был близок к исходному варианту Pascal, придуманному Виртом для обучения своих студентов, но он сейчас устарел на 15-20 лет - почти вечность. Сейчас есть группа паскалеподобных языков, очень сильно расширенных по сравнению с исходным вариантом. Удобная и простая среда для программирования - PascalABC.NET на одноименном сайте. Вообще его, зная основы C++, освоить очень легко. Но большого смысла нет - он хорош как переходная ступень к C++, а идти от C++ к Pascal есть смысл только чтобы познакомиться с Pascal.

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

Здравствуйте, помогите пожалуйста с заданием, осталось пару дней до сдачи я совсем не могу ничего придумать=(

Надо написать шашки на Visual C++ используя Dark GDK(желательно), мне нужно хотя бы просто доску нарисовать и расставить шашки, там уже, я думаю, сама более менее разберусь(ну если не разберусь, спрошу еще :baby: ), для меня самое трудное начать и прикрутить графику=(

Ах да, нужно обязательно ООП, классы по полной программе.

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

Anastasija

Ну, вот тут есть исходный код игры на Dark GDK, где поле с клеточками и по нему ползает червяк. Требует для работы, между прочим, NET.Framework 3.5. .БОльшим, чем эта ссылка, помочь не могу.

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

Помогите, пожалуйста, написать программы на С++. Нужно до четверга =(

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

2) Заполнить массив из структур, написать и выполнить программу, используя функции.

1. Описать структуру с именем AEROFLOT, содержащую следующие поля:

• название пункта назначения рейса;

• номер рейса;

• тип самолета.

2. Написать программу, выполняющую следующие действия:

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

• вывод на экран номеров рейсов и типов самолетов, вылетающих в пункт назначения, название которого совпало с названием, введенным с клавиатуры;

• если таких рейсов нет, выдать на дисплей соответствующее сообщение.

3) Для хранения данных о планшетных сканерах описать структуру вида

struct scan_info{    char model[25]; // наименование моделиint price; // ценаdouble x_size; // горизонтальный размер области сканир-ияdouble y_size; // вертикальный размер области сканированияint optr; // оптическое разрешениеint grey; // число градаций серого};

Написать функцию, которая динамически выделяет память под массив структур (не меньше шести элементов), заполняет его данными в режиме диалога и записывает массив в бинарный файл. Структура файла: в первых двух байтах разме­щается значение типа int, определяющее количество сделанных в файл записей; далее без пропусков размещаются записи о сканерах,

Написать функцию, которая извлекает данные о сканере из описанного выше бинарного файла в структуру типа scan_info. Обязательный параметр — номер требуемой записи. Функция должна возвращать нулевое значение, если чтение прошло успешно, и – 1 в противном случае.

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

Все необходимые данные для функций должны передаваться им в качестве параметров. Использование глобальных переменных в функциях не допускается.

и еще одна

Написать программу, моделирующую лабиринт. В качестве символа стен выберите символ «#». В лабиринте должно быть не более N входов и выходов. Попробуйте составить рекурсивную функцию, которая будет искать выход из лабиринта, начиная с некоторой начальной позиции.

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

wedma

2.

#include <iostream>#include <string.h>using namespace std;main(){const int n=7; int i,j,k=0,los; char Name[20]; bool b;struct AEROFLOT{char TARGET[20],TYP[20];unsigned TRIP;}TABL[n],T;for(i=0;i<n;i++){ cout<<endl<<"Target? "; cin.getline(TABL[i].TARGET,20); if(!strlen(TABL[i].TARGET))break; cout<<"Type?   "; cin.getline(TABL[i].TYP,20); cout<<"Trip?   "; cin>>TABL[i].TRIP; cin.getline(Name,20); k++;}for(i=0;i<k;i++)for(j=0;j<k-i-1;j++) if(TABL[j].TRIP>TABL[j+1].TRIP){T=TABL[j];TABL[j]=TABL[j+1];TABL[j+1]=T;}cout<<endl<<"Where (target)? ";  cin.getline(Name,20); b=true;for(i=0;i<k;i++)if(!strcmp(TABL[i].TARGET,Name)) {cout<<endl<<"Trip: "<<TABL[i].TRIP<<" \t"<<"Type: "<<TABL[i].TYP; b=false;}if(b)cout<<endl<<"No such trip!"; cout<<endl<<endl; cin.get();}

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

1,3,4. Посмотри ссылки на решения в ЛС.

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

Троль спасай )))) !!!!!

i

Уведомление:

Вот давайте только без истерик, Вам никто ничего не обязан. Сами поучиться не пробовали?

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

@Тролль, спасибо большое) а вы не объясните еще, что значит "it seems that this file has not been built yet. Do you want to build it now?" выдает это при каждой попытке запустить программу. если нажать да, то ничего не делает, если нажать нет, то вылазит окошко.. и там тоже ничего не понятно =( типа нажмите любую клавишу и внизу выходит это

Checking for existence: Untitled1.exe

Checking for existence: Untitled1.exe

Executing: D:\Учебное\2 курс\Программирование\CodeBlocks/cb_console_runner.exe "Untitled1.exe" (in )

Process terminated with status 0 (2 minutes, 34 seconds)

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

wedma

Это, скорее всего, неправильны какие-то настройки среды CodeBlocks... Используй лучше среду Dev-C++ - она проще и компактнее. Там никаких проблем точно не возникнет.

benefit

Сформировать двунаправленный список. Удалить из него первый элемент, добавить элемент в конец списка
Ну, если писать компактно, это будет так: .
#include <iostream>#include <list>using namespace std;int main(){const int n=5; list<int> ml; list<int>::iterator it;for(int i=1;i<=n;i++)ml.push_back(i);for(it=ml.begin();it!=ml.end();++it)cout<<" "<<*it; cout<<endl;ml.pop_front(); ml.push_back(n+1);for (it=ml.begin();it!=ml.end();++it)cout<<" "<<*it; cout<<endl; cin.get();}

Сформирует список из чисел 1 2 3 4 5 (задано в n), выдаст его на экран, уберет первый элемент, добавит в хвост списка число 6 и снова выдаст на экран, теперь уже как 2 3 4 5 6.

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

помогите пожалуйста! нужно написать программу на c++, суть в следующем:

Анкета для опроса населения содержит следующую информацию:

  • имя;
  • возраст;
  • пол;
  • образование (начальное, среднее, высшее).
  • ответ на вопрос анкеты, который либо ДА, либо НЕТ.

Составить программу, которая:

  • обеспечивает начальный ввод анкет и формирует из них линейный список в алфавитном порядке;
  • на основе анализа анкет выдает ответы на следующие вопросы:
  • а) сколько мужчин старше 40 лет, имеющих высшее образование, ответили ДА на вопрос анкеты;
  • а) сколько женщин моложе 30 лет, имеющих среднее образование, ответили НЕТ на вопрос анкеты;
  • а) сколько мужчин моложе 25 лет, имеющих начальное образование, ответили ДА на вопрос анкеты;
  • производит вывод всех анкет и ответов на вопросы.
Изменено пользователем Lixxard
Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

Войти

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

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

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



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