NickLid Опубликовано 10 мая, 2012 Жалоба Поделиться Опубликовано 10 мая, 2012 Тролль, спасибо огромное))) Ссылка на комментарий Поделиться на другие сайты Поделиться
миклух Опубликовано 11 мая, 2012 Жалоба Поделиться Опубликовано 11 мая, 2012 Приветствую всех! делаю задание, и как-то не получается, суть состоит в: Автоматизированная информационная система содержащий записи следующей структуры: фамилия, имя; знак Зодиака; день рождения (массив из трех чисел); Составить программу, которая: обеспечивает первоначальный ввод данных и формирует из них стек; поиск информации о людях, родившихся в одно и тоже число, значение которого введено с клавиатуры и формирование из них списка; если таких людей нет, выдать соответствующее сообщение на дисплей. первый пункт осилил, второй на половину сделал. собственно не получается нормально организовать вывод найденных эл-тов и сформировать из них список. Помогите дописать код, заранее благодарен за помощь: 15_2.txt #include "stdafx.h"#include <iostream>#include <conio.h>#include <windows.h>using namespace std;struct people{char F[10];char I[10];char znak[10];int date[3];};//----------------------------------struct list{people d;list *next;list *prev;};//----------------------------------struct node{people d;node *p;};//----------------------------------//печать стекаvoid print_people(people p){cout<<endl<<"Фамилия: "<<p.F<<" Имя: "<<p.I<<" Зодиак: "<<p.znak<<" Дата рожд.: "<<p.date[0]<<" Месяц рожд.: "<<p.date[1]<<" Год рожд.: "<<p.date[2];}//----------------------------------list * firstlist(people d);void addlist(list **pend, people d);//----------------------------------node *head;node *first(people d);void push(node **top, people d);void del(node **top);node *find (node * const top, people x);//----------------------------------int main(){SetConsoleCP(1251);SetConsoleOutputCP(1251);people a;node *q;char ch;cout<<"\n информация о людях: ";for (int i=0;i<1;i++){ cout<<"\n Фамилия: "; cin>>a.F; cout<<"\n Имя: "; cin>>a.I; cout<<"\n Знак зодиака: "; cin>>a.znak; cout<<"\n Дата рождения: "; cin>>a.date[0]; cout<<"\n Месяц рождения: "; cin>>a.date[1]; cout<<"\n Год рождения: "; cin>>a.date[2];}node *top = first(a);int num=1;do{ cout<<"\n Фамилия: "; cin>>a.F; cout<<"\n Имя: "; cin>>a.I; cout<<"\n Знак зодиака: "; cin>>a.znak; cout<<"\n Дата рождения: "; cin>>a.date[0]; cout<<"\n Месяц рождения: "; cin>>a.date[1]; cout<<"\n Год рождения: "; cin>>a.date[2]; push (&top, a); cout<<"\n Ввод окончен? y/n "; cin>>ch; cout<<"\n"; num++;}while (ch != 'y'); cout<<"\nВведите информацию для поиска: "; cout<<"\nВведите день: "; cin>>a.date[0]; cout<<"\nВведите месяц: "; cin>>a.date[1]; cout<<"\nВведите год: "; cin>>a.date[2]; q=find(top,a); for(int i=0; i<num; i++){ q=find(top,a); do{if(q!=0) { cout << q->d.F <<" "; del(&top); }else { cout << "Таких нет!!\n"; }} while(top); }_getch();return 0;}//----------------------------------//начальное формирование стекаnode * first(people d){node *pv = new node;pv->d = d;pv->p = 0;return pv;}//----------------------------------//занесение в стекvoid push(node **top, people d){node *pv = new node;pv->d = d;pv->p = *top;*top = pv;}//---------------------------------//поиск из стекаnode *find (node * const top, people x){node *temp = top; while (temp){ if ((temp->d.date[0]==x.date[0])&&(temp->d.date[1]==x.date[1])&&(temp->d.date[2]==x.date[2]))break; temp=temp->p;}return temp;}//---------------------------------//удаление из стека найденного эл-та//для дальнейшего поискаvoid del(node **top){node *tmp=*top;*top=(*top)->p;delete tmp;}//----------------------------------//начальное формирование спискаlist * firstlist(people d){list *pv = new list;pv->d=d;pv->next = 0;pv->prev = 0;return pv;}//----------------------------------//добавление в конец спискаvoid addlist(list **pend, people d){list *pv = new list;pv->d=d;pv->next = 0;pv->prev = *pend;(*pend)->next = pv;*pend = pv;} 15_2.txt Ссылка на комментарий Поделиться на другие сайты Поделиться
Artys Опубликовано 11 мая, 2012 Жалоба Поделиться Опубликовано 11 мая, 2012 Доброго всем времени суток, помогите пожалуйста срочно сделать программу на Паскале. На вход подается любые координаты трех бильярдных шаров (стоят пирамидой) Радиус одного шара 34мм, длина стола 3500мм, ширина 1750мм, программа должна выводить количество шаров которые могут закатиться в лузу. p.s (личные мысли) стол можно разделить на 2 части, они будут равными квадратами соответственно диагонали по отношению к лузам для каждого квадрата равны 45 градусов, центр пересечения двух диагоналей это центр системы, при которой могут закатиться два шара в лузу, это может происходить как в центральные лузы так и в боковые, всего вариантов для того что бы закатились два шара 8, один шар закатится при условии, лишь один шар лежит на диагонали одного из квадратов, учитывать что этот шар может быть как номером один так и номером два. при всем остальном ни один шар не закатиться. Ссылка на комментарий Поделиться на другие сайты Поделиться
kvazimoda Опубликовано 11 мая, 2012 Жалоба Поделиться Опубликовано 11 мая, 2012 (изменено) Доброго всем времени суток, помогите пожалуйста срочно сделать программу на Паскале. На вход подается любые координаты трех бильярдных шаров (стоят пирамидой) Радиус одного шара 34мм, длина стола 3500мм, ширина 1750мм, программа должна выводить количество шаров которые могут закатиться в лузу. p.s (личные мысли) стол можно разделить на 2 части, они будут равными квадратами соответственно диагонали по отношению к лузам для каждого квадрата равны 45 градусов, центр пересечения двух диагоналей это центр системы, при которой могут закатиться два шара в лузу, это может происходить как в центральные лузы так и в боковые, всего вариантов для того что бы закатились два шара 8, один шар закатится при условии, лишь один шар лежит на диагонали одного из квадратов, учитывать что этот шар может быть как номером один так и номером два. при всем остальном ни один шар не закатиться. Слишком Вы всё примитивно описали. А учитывается ли то, что шары могут отскакивать от стенок стола? Что шары могут друг с другом взаимодействать? По какому шару мы ударяем? С какой стороны? Если шары просто стоят на столе, то ни один не закатится. А ещё в настоящем бильярде шару закручиваются и могут двигаться по кривой траектории, вплоть до того, что катиться в противоположную от удара сторону. И вообще, бильярд - игра трёхмерная, шары и прыгать умеют. :) Изменено 11 мая, 2012 пользователем kvazimoda Ссылка на комментарий Поделиться на другие сайты Поделиться
matvey707 Опубликовано 12 мая, 2012 Жалоба Поделиться Опубликовано 12 мая, 2012 Помогите пожалуйста. Используя очередь через структуры type FR =file of real; За один просмотр файла f типа FR и без использования дополнительных файлов напечатать элементы файла f в следующем порядке сначала - все числа, меньшие а, затем -все числа из отрезка [a,b], и наконец - все остальные числа, сохраняя исходный взаимный порядок в каждой из этих трех групп чисел (a и b- заданные числа, a<b) . Ссылка на комментарий Поделиться на другие сайты Поделиться
Artys Опубликовано 12 мая, 2012 Жалоба Поделиться Опубликовано 12 мая, 2012 Слишком Вы всё примитивно описали. А учитывается ли то, что шары могут отскакивать от стенок стола? Что шары могут друг с другом взаимодействать? По какому шару мы ударяем? С какой стороны? Если шары просто стоят на столе, то ни один не закатится. А ещё в настоящем бильярде шару закручиваются и могут двигаться по кривой траектории, вплоть до того, что катиться в противоположную от удара сторону. И вообще, бильярд - игра трёхмерная, шары и прыгать умеют. :) а Нет программа довольно примитивна, да забыл добавить бьется 4 шаром (он находиться в любой точке стола), а так все, учитываем что двигаются без закручивания и без прыжков Ссылка на комментарий Поделиться на другие сайты Поделиться
Serty Опубликовано 12 мая, 2012 Жалоба Поделиться Опубликовано 12 мая, 2012 Тролль, приветствую тебя! Ты мне когда-то делал программу с использованием стека. Используя стек, решить следующую задачу. В текстовом файле f записана без ошибок формула следующего вида: <формула> ::= <цифра> | М(<формула>, <формула>) | m(<формула>, <формула>) <цифра> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9, где М обозначает функцию max, a m- min. Вычислить как целое число значение данной формулы. Например, М(5,m (6,8))=6. #include <ctype.h> #include <string.h> #include <stdlib.h> #include <stdio.h> #include <fstream> #include <iostream> // подключили заголовочные файлы используемых библиотек using namespace std; // использование стандартного пространства имен const int maxf=0,minf=1,size=100; // определили константы typedef struct _t{int data; int cur;}st; // объявили тип элемента стека void init(st* s){for(int i=0;i<size;i++)s->data=0; s->cur=-1;} // функция инициализации стека int empty(st *s){return s->cur==-1;} // функция проверки пустоты стека void push(st *s,int i){s->data[++(s->cur)]=i;} // функция заталкивания элемента в стек int pop(st *s){return empty(s)?0:s->data[(s->cur)--];} // функция извлечения элемента из стека int main() { ifstream input_file("f.txt"); // объявили входной поток из файла const int l=100; char e[l]; char buf[l]; st s; init(&s); // объявляем переменные и инициализируем стек input_file.getline(e,l,'\n'); // ввели строку из файла int i,j,len=strlen(e); // определили длину введенной строки for(i=0;i<len;i++){if(e=='M'){push(&s,maxf); continue;} if(e=='m'){push(&s,minf); continue;} if(isdigit(e)){j=0; while(isdigit(e))buf[j++]=e[i++]; buf[j]=' '; push(&s,atoi(buf));} // заталкиваем в стек коды операций и числа if(e==')'){int b=pop(&s); int a=pop(&s); int func=pop(&s); if(func==maxf)push(&s,a>b?a:b); else push(&s,a<b?a:b); // если попадается закрывающая скобка, вытаскиваем из стека два числа и код // операции, производим операцию и закидываем результат обратно в стек }} cout<<e<<endl<<pop(&s)<<endl; //выводим строку исходного выражения и результат cin.get(); // задерживает закрытие окна вывода до нажатия Enter } Подскажи мне, пожалуйста, что, где и как осуществляется работа со стеком? Как задали/описали стек, что в него последним пришло и первым вышло? Короче, основные ньюансы работы данной программы, по порядочку для особо одаренных...) Буду очень благодарен тебе! Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 12 мая, 2012 Жалоба Поделиться Опубликовано 12 мая, 2012 (изменено) миклух Автоматизированная информационная система содержащий записи следующей структуры: фамилия, имя; знак Зодиака; день рождения (массив из трех чисел); Составить программу, которая: обеспечивает первоначальный ввод данных и формирует из них стек; поиск информации о людях, родившихся в одно и тоже число, значение которого введено с клавиатуры и формирование из них списка; если таких людей нет, выдать соответствующее сообщение на дисплей. #include "stdafx.h"#include <iostream>#include <stack>#include <queue>using namespace std;struct stru{char a[3][20]; int b[3];}su; stack<stru>st; queue<stru>qu;int main(){char ninf[][20]={"Name: ","Surname: ","Zodiac: ","Day: ","Month: ","Year: "};cout<<"People data (exit: Enter instead of Name): "<<endl;while(true){cout<<endl<<ninf[0]; cin.getline(su.a[0],'\n'); if(su.a[0][0]==0){cout<<endl; break;} for(int i=1;i<3;i++){cout<<ninf[i]; cin>>su.a[i];} for(int i=0;i<3;i++){cout<<ninf[i+3]; cin>>su.b[i];} cin.get(); st.push(su);}int day,k=0; cout<<"Day: "; cin>>day;while(!st.empty()){{su=st.top(); st.pop();// for(int i=0;i<3;i++){cout<<ninf[i]<<su.a[i]<<' ';} for(int i=0;i<3;i++){cout<<ninf[i+3]<<su.b[i]<<' ';} if(su.b[0]==day){qu.push(su); k++;}} cout<<endl;}if(k){cout<<"Selected persons:"<<endl<<endl; while(!qu.empty()){su=qu.front(); qu.pop(); for(int i=0;i<3;i++)cout<<ninf[i]<<su.a[i]<<endl; for(int i=0;i<3;i++)cout<<ninf[i+3]<<su.b[i]<<endl; cout<<endl;}}else cout<<"No such persons!"<<endl;cout<<"Press Enter"; cin.get(); cin.get();} Ввод данных людей заканчивается вводом пустой строки вместо фамилии (просто нажать Enter в пункте Name). Неясно, зачем вводить знак зодиака, он определяется датой рождения, можно было бы просто рассчитывать. Но раз сказано, вводим. Закомментирована строка контрольной выдачи из стека данных всех людей. Изменено 12 мая, 2012 пользователем Тролль 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
миклух Опубликовано 12 мая, 2012 Жалоба Поделиться Опубликовано 12 мая, 2012 @Тролль, я просто в шоке. не знал, что можно так реализовать, спасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
kvazimoda Опубликовано 12 мая, 2012 Жалоба Поделиться Опубликовано 12 мая, 2012 да забыл добавить бьется 4 шаром (он находиться в любой точке стола) Ну, надеюсь, направление удара тоже указывается? :) Нет программа довольно примитивна Я так и не понял, будут ли отскоки от стенок? Будут учитываться касания шаров краями? И нет размера луз. @Artys, и хочу предупредить, от меня кода не жди, я ни разу не программист, это я больше придираюсь по самому условию, т.к. условия практически нет. И если соблюдать все законы физики, то задачка не из простых и вряд ли @Тролль тебе напишет код. А если совсем примитивная, то, мне кажется, надо более чётко указать условие, иначе говоря, описать ту физическую модель по которой шары будут кататься по столу. Ссылка на комментарий Поделиться на другие сайты Поделиться
medvedkotracer Опубликовано 12 мая, 2012 Жалоба Поделиться Опубликовано 12 мая, 2012 (изменено) Здравствуйте! Нужно написать программу на C Задание такое: Есть текстовый файл csv c таким вот текстом: Character,Speech The multitude,The messiah! Show us the messiah! Brians mother,<angry>Now you listen here! He's not the messiah; he's a very naughty boy! Now go away!</angry> The multitude,Who are you? Brians mother,I'm his mother; that's who! The multitude,Behold his mother! Behold his mother! Нужно прочитать файл, заменить теги csv на теги html и записать в новый html - файл. Я знаю, как заменить теги, но не знаю, как считать текст из файла и записать в новый файл. Вот я меняю csv - теги на html-теги #include <stdio.h> char input[] = "Character,Speech\n" "The multitude,The messiah! Show us the messiah!\n" "Brians mother,<angry>Now you listen here! He's not the messiah; " "he's a very naughty boy! Now go away!</angry>\n" "The multitude,Who are you?\n" "Brians mother,I'm his mother; that's who!\n" "The multitude,Behold his mother! Behold his mother!"; int main() { char *s = input; printf("<table>\n<tr><td>"); for (s = input; *s; s++) { switch(*s) { case '\n': printf("</td></tr>\n<tr><td>"); break; case ',': printf("</td><td>"); break; case '<': printf("<"); break; case '>': printf(">"); break; case '&': printf("&"); break; default: putchar(*s); } } puts("</td></tr>\n</table>"); return 0; } Изменено 12 мая, 2012 пользователем medvedkotracer Ссылка на комментарий Поделиться на другие сайты Поделиться
sizetooo Опубликовано 12 мая, 2012 Жалоба Поделиться Опубликовано 12 мая, 2012 Здравствуйте :) Помогите пожалуйста выполнить задание, вот текст: Описать функцию value (postfix), которая вычисляет как целое число значение выражения (без переменных), записанного в постфиксной форме в текстовом файле postfix. Использовать следующий алгоритм вычисления. Выражение просматривается слева направо. Если встречается операнд (число), то его значение (как целое) заносится в стек, а если встречается знак операции, то из стека извлекаются два последних элемента, над ними выполняется операция и её результат записывается в стек. В конце концов в стеке остается только одно число - значение выражения. Буду очень благодарен :) Ссылка на комментарий Поделиться на другие сайты Поделиться
Toxa1234 Опубликовано 12 мая, 2012 Жалоба Поделиться Опубликовано 12 мая, 2012 Помогите пожалуйста составить программу на Lazarus. Ну или если не получится то хотя бы на Паскаль Тело имеет форму параллелепипеда с высотой h. Прямоугольник в основании имеет диагональ d. Известно, что диагонали основания пересекаются под углом α. Найти объем тела V и площадь поверхности S. Заранее благодарю. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 12 мая, 2012 Жалоба Поделиться Опубликовано 12 мая, 2012 (изменено) Toxa1234 Пифагоровы штаны на все стороны равны... program pah;var a,d,h,x,y:real;beginwrite('Angle in degree? '); readln(a);write('Diagonal? '); readln(d);write('Height? '); readln(h);a:=a*pi/180; x:=d*sin(a/2); y:=d*cos(a/2);writeln('V=',x*y*h:0:2,' S=', 2*(x*y+x*h+y*h):0:2);end. миклух В C++ куча стандартных структур данных и операций. Конечно, можно умножение заменять сложением, а стандартные функции реализовать вручную, но зачем изобретать велосипед... Artys Решение задачи начинается с составления ее условия. Так называемое техзадание. Для начала надо понять, что в него входит. Вообще мне кажется, что задача для программирования не должна требовать предварительного изучения правил игры в бильярд. Хотя в бильярд я несколько раз играл, поэтому знаю, что шар влетит в лузу смотря как по нему стукнут - не все удары центральные. Но, например, совершенно не понял, почему при любых координатах бильярдных шаров они стоят пирамидой... Предлагаю простое решение ;). Если мы не учитываем трения, то все шары будут кататься по столу, отскакивая от стенок и друг от друга, пока не закатятся в лузы ;) Изменено 12 мая, 2012 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Fisher Опубликовано 13 мая, 2012 Жалоба Поделиться Опубликовано 13 мая, 2012 Здравствуйте, помогите пожалуйста написать программу на C++: Составить динамическую модель с чтением из файла следующего объекта: Состав специальностей вуза с разбивкой на факультеты. Количество факультетов и специальностей каждого факультета задать самостоятельно. Составить модуль поиска элементов с диапазоном шифров специальностей от ШИФР1 до ШИФР2. Ссылка на комментарий Поделиться на другие сайты Поделиться
archangel0804 Опубликовано 13 мая, 2012 Жалоба Поделиться Опубликовано 13 мая, 2012 (изменено) Здравствуйте!вы можете помочь с реализацией на С++!Список участков предприятия с разбивкой по цехам. Количество цехов и участков каждого цеха задать самостоятельно. Составить модуль поиска участка с максимальным номером!если можно с комментариями! Изменено 13 мая, 2012 пользователем archangel0804 Ссылка на комментарий Поделиться на другие сайты Поделиться
Teddy_Bear Опубликовано 13 мая, 2012 Жалоба Поделиться Опубликовано 13 мая, 2012 Если мы не учитываем трения, то все шары будут кататься по столу, отскакивая от стенок и друг от друга, пока не закатятся в лузы ;) Термодинамическое решение :) Не хватает задания силы трения, в связи с этим ограничения на силу первичного удара, размера луз. Но основной трабл при многочисленных отскоках от стенок - это точность расчета ударов почти по касательной. Тут даже Дабл пресижн не выручит. Если бы не это, то можно бы решить методом Монте-Карло. P.S. Я программист на Паскале. Ссылка на комментарий Поделиться на другие сайты Поделиться
archangel0804 Опубликовано 13 мая, 2012 Жалоба Поделиться Опубликовано 13 мая, 2012 Здравствуйте!вы можете помочь с реализацией на С++!Список участков предприятия с разбивкой по цехам. Количество цехов и участков каждого цеха задать самостоятельно. Составить модуль поиска участка с максимальным номером!если можно с комментариями! забыл указать что тема:файлы Ссылка на комментарий Поделиться на другие сайты Поделиться
Toxa1234 Опубликовано 13 мая, 2012 Жалоба Поделиться Опубликовано 13 мая, 2012 Ребятушки помогите пожалуйста ещё с 2мя задачками пожалуйста. 1) Поступает последовательность целых положительных чисел, 0 – конец последовательности. Посчитать количество элементов последовательности, имеющих в своем представлении цифру 0. Создать процедуру, возвращающую значение истина, если в числе есть нули, и ложь в противном случае. 2)Вводится последовательность из N произвольных чисел. Определить процент положительных, отрицательных и нулевых элементов. Похэлпите пожалуйста :cry: Ссылка на комментарий Поделиться на другие сайты Поделиться
kvazimoda Опубликовано 13 мая, 2012 Жалоба Поделиться Опубликовано 13 мая, 2012 (изменено) Ребятушки помогите пожалуйста ещё с 2мя задачками пожалуйста. 1) Поступает последовательность целых положительных чисел, 0 – конец последовательности. Посчитать количество элементов последовательности, имеющих в своем представлении цифру 0. Создать процедуру, возвращающую значение истина, если в числе есть нули, и ложь в противном случае. 2)Вводится последовательность из N произвольных чисел. Определить процент положительных, отрицательных и нулевых элементов. Похэлпите пожалуйста :cry: На Питоне подойдёт? Изменено 13 мая, 2012 пользователем kvazimoda Ссылка на комментарий Поделиться на другие сайты Поделиться
Simik Опубликовано 13 мая, 2012 Жалоба Поделиться Опубликовано 13 мая, 2012 Доброго времени суток! Прошу помощи в задачах на С++ 1. (Тема : Файлы) Составить динамическую модель следующего объекта: Состав студентов факультета с разбивкой на группы. Количество специальностей на факультете, групп каждой специальности и студентов в каждой группе задать самостоятельно. Составить модуль поиска адреса (ссылки) элемента списка по его информационным полям. 2. (Тема : Стеки, Деки, Очереди) Используя очередь, решить следующую задачу. Содержимое текстового файла f, разделенное на строки, переписать в текстовый файл g, перенося при этом в конец каждой строки все входящие в нее цифры (с сохранением исходного порядка как среди цифр, так и среди остальных литер строки).Строк больше 1.(Пример: Стро2к3а -> Строка23) Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 13 мая, 2012 Жалоба Поделиться Опубликовано 13 мая, 2012 (изменено) Toxa1234 1) Поступает последовательность целых положительных чисел, 0 – конец последовательности. Посчитать количество элементов последовательности, имеющих в своем представлении цифру 0. Создать процедуру, возвращающую значение истина, если в числе есть нули, и ложь в противном случае. program a1;procedure test(i:integer; var b:boolean); begin b:=false; repeat if i mod 10=0 then b:=true; i:=i div 10 until i=0 end;var k,n:integer; b:boolean;begin n:=0; repeat readln(k); test(k,b); if b then inc(n) until k=0; writeln(n-1); end. 2)Вводится последовательность из N произвольных чисел. Определить процент положительных, отрицательных и нулевых элементов. program a2;var i,n,p,o,k:integer; a:real;beginwrite('n? '); readln(n); p:=0; o:=0; k:=0;for i:=1 to n do begin read(a); if a>0 then inc(p); if a<0 then inc(o); if a=0 then inc(k); end;readln; write('>0: ',p/n*100:0:2,'%, <0: ',o/n*100:0:2,'%, =0: ',k/n*100:0:2,'%');end. Serty Подскажи мне, пожалуйста, что, где и как осуществляется работа со стеком? Как задали/описали стек, что в него последним пришло и первым вышло?Короче, основные ньюансы работы данной программы, по порядочку для особо одаренных...) Я уже прокомментировал каждую строчку, куда же еще? Комментировать каждую букву будет чересчур утомительно... И на том форуме, куда ты писал еще, подробнее не будут ;) В комментариях же стоит: "инициализируем стек", "заталкиваем в стек коды операций и числа", "если попадается закрывающая скобка, вытаскиваем из стека два числа и код операции, производим операцию и закидываем результат обратно в стек"... Ну, что еще можно добавить? Сделано все по бессмертному методу бессмертного Кащея, то есть Кащея Бессмертного - тело стека в массиве int data, массив с адресом вершины стека в структуре типа _t... "что в него последним пришло и первым вышло?" Стек исходно это стопка тарелок или подносов в ресторане или столовой. Что последним пришло, то и первым вышло - это очередной элемент строки с обрабатываемым выражением, они туда заталкиваются при проходе строки слева направо, а выходят как только с ними можно совершить операцию, чтобы уменьшить их количество в стеке, когда попадается закрывающая скобка... я уже повторяю комментарии из программы. Да, и на будущее, вместо копирования в пост целиком программы из старого поста, когда он занимает уйму места, да еще и без тега CODE, когда код программы воспринимается движком форума неправильно и искажается, гораздо лучше просто привести ссылку на исходный пост. Изменено 13 мая, 2012 пользователем Тролль 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Artys Опубликовано 13 мая, 2012 Жалоба Поделиться Опубликовано 13 мая, 2012 Artys Решение задачи начинается с составления ее условия. Так называемое техзадание. Для начала надо понять, что в него входит. Вообще мне кажется, что задача для программирования не должна требовать предварительного изучения правил игры в бильярд. Хотя в бильярд я несколько раз играл, поэтому знаю, что шар влетит в лузу смотря как по нему стукнут - не все удары центральные. Но, например, совершенно не понял, почему при любых координатах бильярдных шаров они стоят пирамидой... Предлагаю простое решение ;). Если мы не учитываем трения, то все шары будут кататься по столу, отскакивая от стенок и друг от друга, пока не закатятся в лузы ;) ------------------------------------------------------------------------------------------------------------------------------------------- Шары первоначально стоят 3пирамидой, и одним мы бьем, (мы на вход подаем положение этих шаров, положение 4 шара,и положение пирамиды "пирамиды" ) на выход требуется вывести ответ сколько шаров закатиться. (не учитывать не трение ничего просто удар и они полетели. постараюсь на приложенном рисунке пояснить. Ссылка на комментарий Поделиться на другие сайты Поделиться
kvazimoda Опубликовано 13 мая, 2012 Жалоба Поделиться Опубликовано 13 мая, 2012 (изменено) @Artys, если мы не учитываем силу трения, то программа будет довольно простой: #include<stdio.h>main(){printf ("3");} :) Изменено 13 мая, 2012 пользователем kvazimoda Ссылка на комментарий Поделиться на другие сайты Поделиться
Artys Опубликовано 13 мая, 2012 Жалоба Поделиться Опубликовано 13 мая, 2012 @kvazimoda, Спасибо, но это сильно просто) а с координатами можно? :) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти