Тролль Опубликовано 31 мая, 2009 Жалоба Поделиться Опубликовано 31 мая, 2009 (изменено) koketka15: ПРЕПОД УЖАСНО ОБЪЯСНЯЕТА зачем вы его тогда слушаете? Сами виноваты!МЫ НИЧЕГО НЕ ПОНИМАЕМИ не должны. Мыслимое ли дело - нечто математическое на слух воспринимать? Это как игра в шахматы по телефону. Но я надеюсь, читать вы умеете? 5 минут чтения учебника полезнее 45 минут слушания препода. QBASIC - это первобытный язык программирования. Что сложного в операторе line(x1,y1)-(x2,y2) - прочертить линию из одной точки в другую? В задаче о пирамиде почти ничего больше и нет. Надо еще уметь пирамиду построить. Но это и в древнем Египте могли. И даже не на экране :D Вот программа, рисующая в изометрии раскрашенную под павлина пирамиду: SCREEN 9: x = 320: y = 150: k = 350 / 640 * 1280 / 1024n = TAN(3.1416 / 6): p = 200: m = p * n * kLINE (x - p, y)-(x, y - m): LINE (x + p, y)-(x, y - m)LINE (x - p, y)-(x, y + m): LINE (x + p, y)-(x, y + m)LINE (x - p, y)-(x, y - m / 2): LINE (x + p, y)-(x, y - m / 2)LINE (x, y - m)-(x, y + m)PAINT (x - 1, y - m + 2), 1, 15: PAINT (x + 1, y - m + 2), 2, 15PAINT (x - 1, y + m - 2), 3, 15: PAINT (x + 1, y + m - 2), 4, 15 Kоэффициент k масштабирует соотношения размеров древнего дисплея, на который были рассчитаны команды QBASIC, к моему современному (более или менее) жидкокристаллическому, если у вас монитор с другим соотношением горизонтали к вертикали, надо будет его подкорректировать. P.S. Заменил в программе использовавшуюся в ней букву l на p, чтобы не путалась с похожей по начертанию цифрой 1. Изменено 31 мая, 2009 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Wesker Опубликовано 2 июня, 2009 Жалоба Поделиться Опубликовано 2 июня, 2009 решите пожалуйста две задачки )) 1. В исходной строке a$ заменить все вхождения заданной последовательности символов x$ на другую заданную последовательность символов y$ 2. Дано натуральное число n. Поменять порядок цифр в этом числе на обратный. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 2 июня, 2009 Жалоба Поделиться Опубликовано 2 июня, 2009 Wesker: На каком языке? Ссылка на комментарий Поделиться на другие сайты Поделиться
Wesker Опубликовано 2 июня, 2009 Жалоба Поделиться Опубликовано 2 июня, 2009 qbasic Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 2 июня, 2009 Жалоба Поделиться Опубликовано 2 июня, 2009 Wesker: В исходной строке a$ заменить все вхождения заданной последовательности символов x$ на другую заданную последовательность символов y$ INPUT "a$"; a$: INPUT "x$"; x$: INPUT "y$"; y$: x = LEN(x$): y = LEN(y$)k = 1: DO: k = INSTR(k, a$, x$): IF k = 0 THEN EXIT DOa$ = LEFT$(a$, k - 1) + y$ + MID$(a$, k + x): k = k + y: LOOP: PRINT a$ Дано натуральное число n. Поменять порядок цифр в этом числе на обратный. INPUT n: a$ = STR$(n): FOR i = 1 TO LEN(a$): b$ = b$ + MID$(a$, LEN(a$) - i + 1, 1): NEXT: n = VAL(b$): PRINT n Ссылка на комментарий Поделиться на другие сайты Поделиться
vovka8888 Опубликовано 2 июня, 2009 Жалоба Поделиться Опубликовано 2 июня, 2009 Ребят умоляю решите пожалуйста ! очень надо! 1) Построить график Астроида x=b*cos^3t, y=b*sin^3t, где t[0,2 Pi], a b - любое положительное число. 2) Построить спираль, вокруг начала координат с n-витками, R - радиусом, и центром окружности в точке с координатами (х, y); x=R*cos(t), y=R*sin(t); R=t/2; 0<=t<=2nPi i Уведомление:Artur88: Что вы хотите сказать капс локом ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 3 июня, 2009 Жалоба Поделиться Опубликовано 3 июня, 2009 vovka8888: Построить график Астроида x=b*cos^3t, y=b*sin^3t, где t[0,2 Pi], a b - любое положительное число. uses Graph,CRT;var i,x,y,GrDriver,GrMode:integer; b,t,s,c:real;beginGrDriver:=VGA; GrMode:=VGAHi; InitGraph(GrDriver,GrMode,'\TP\BGI');if GraphResult<>GrOk then begin WriteLn('Graphic driver?'); i:=Ord(ReadKey); Halt end;SetBkColor(LightGray); SetColor(Red); b:=200; MoveTo(320,round(b)+240);for i:=1 to 360 do begin t:=pi/180*i; s:=sin(t); c:=cos(t);x:=round(b*s*s*s)+320; y:=round(b*c*c*c)+240; lineto(x,y) end; i:=Ord(ReadKey)end. b принял равным 200, так как тогда астроида хорошо помещается на экране. Построить спираль, вокруг начала координат с n-витками, R - радиусом, и центром окружности в точке с координатами (х, y); x=R*cos(t), y=R*sin(t); R=t/2; 0<=t<=2nPiЭто бред. Какая окружность, к тому же с центром, совпадающим с точками этой оуружности, если речь идет о спирали? Будем строить просто спираль. По условию радиус определяется как половина угла. То есть, например, для угла в два радиана радиус равен единице. Чего единице, неясно. В программе я за единицу размера принял пиксел экрана. Если это хочется изменить, надо поменять значение k, фактичски будет меняться расстояние между витками спирали. Скорее всего, увидев любую спираль, препод решит, что это как раз то, чего он хотел, но не смог выразить в условии... Итак, поехали. uses Graph,CRT;var i,x,y,n,GrDriver,GrMode:integer; t,k:real;beginwrite('n ( <=90 ) ? '); readln(n);GrDriver:=VGA; GrMode:=VGAHi; InitGraph(GrDriver,GrMode,'\TP\BGI');if GraphResult<>GrOk then begin WriteLn('Graphic driver?'); i:=Ord(ReadKey); Halt end;SetBkColor(LightGray); SetColor(Red); k:=0.5; MoveTo(320,240);for i:=1 to 360*n do begin t:=pi/180*i; lineto(round(t*k*cos(t))+320,round(t*k*sin(t))+240) end;i:=Ord(ReadKey)end. Ссылка на комментарий Поделиться на другие сайты Поделиться
prev Опубликовано 3 июня, 2009 Жалоба Поделиться Опубликовано 3 июня, 2009 Еще раз здраствуйте, никак допуск не могу получить... Такая тема, задача: Для заданных чисел p,a,b (a<b): имеет ли уравнение arctg(2^x-p)=2^(1/2) Я решал ее так, выразил уравнение через х, после написал условие, что бы х был больше А и меньше Б. Препод сказал, что решать надо, не выражая x. Можете помочь? :) Ой, конец задачки.. ... корень на отрезке [a,b] Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 3 июня, 2009 Жалоба Поделиться Опубликовано 3 июня, 2009 (изменено) prev: Для заданных чисел p,a,b (a<b): имеет ли уравнение arctg(2^x-p)=2^(1/2) ... корень на отрезке [a,b]Насколько я понимаю, это пока не программирование, а математика. Ну, арктангенс - строго монотонная функция при изменении x на всей числовой оси. Показательная функция - тоже. Разность показательной функции и константы - тоже. Их суперпозиция, значит, тоже строго монотонная функция на всей числовой оси. Значит, если arctg(2^x-p)-2^(1/2) в точках a и b имеет разные знаки или равен нулю в одной из этих точек, корень есть, в противном случае - корня нет. Дальше надо просто посчитать это выражение в точках a и b, сравнить с нулем и сделать вывод. Запрограммировать это - пара пустяков. Изменено 3 июня, 2009 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
mrnonamed Опубликовано 4 июня, 2009 Жалоба Поделиться Опубликовано 4 июня, 2009 Всем доброго времени суток. Срочно требуется ваша помощь: нужно написать хотя бы по одному любому заданию из каждого упражнения. На C++. Вот, собственно, и они: Упражнение 1 1. Перевести двоичное шеснадцатиразрядное число в десятичную систему счисления, записав его предварительно в регистр данных _DX. 2. Составить программу эхо-печати вводимой последовательности символов и одновременного преобразования латинских строчных букв в прописные. 3. Отредактировать вводимый текст, удалив из него лишние пробелы. 4. Отредактировать вводимый текст таким образом, чтобы в строке вводимого текста размещалось не более 20 символов. При необходимости предусмотреть символ переноса. Упражнение 2 Треугольник, прямоугольник и круг задаются координатами (x,y) одного из углов или центра для круга. Остальные параметры отличаются и представлены на рисунке Исходная информация представлена массивом структур (записей) о фигурах этих трёх видов. Объём массива выбирается произвольно. 1. Составить програму определения площади фигур. 2. Составить программу подсчёта фигур разного вида и фигур с одинаковой площадью. 3. Составить программу вывода информации о параметрах всех треугольников. 4. Составить программу, формирующую массив параметров всех прямоугольников. 5. Составить программу, выводящую информацию обо всех кругах с площадью, меньше заданной. 6. Составить программу, выводящую информацию о треугольниках, угол alfa которых лежит в заданном интервале. Пожалуйста, помогите. Хотя бы по одному любому заданию из упражнений. Завтра уже сдавать надо :blink: Заранее спасибо. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 4 июня, 2009 Жалоба Поделиться Опубликовано 4 июня, 2009 (изменено) mrnonamed: Задания сформулированы очень небрежно, так что в них много неясного. Ну ладно, каковы вопросы - таковы и ответы. Возьмем 3-и варианты. По 1.3. А кто решает, какие пробелы лишние? Программа ждет ввода строки и сокращает все цепочки пробелов в ней до одного пробела #include<stdio.h>int main(){char s[1000],r[1000]; int i=0,j=0; gets(s);do if(!(s[i]==' '&&s[i]==s[i+1]))r[j++]=s[i]; while(s[i++]); r[j]='\0';puts®; getchar(); getchar;} По 2.3. Вообще-то массив - это совокупность одинаковых элементов, то есть структуры должны быть для одного вида фигур, а не трех разных видов - тогда речь могла бы идти о массиве объединений. Но ладно, в структурах первый элемент задает тип фигуры: 1- треугольник, 2 - прямоугольник, 3 - круг, а остальные элементы - остальные параметры фигуры, их смысл для разных фигур может отличаться. Конец массива обозначается структурой с типом фигуры, равным 0. Для примера в исходном массиве заданы данные четырех фигур, в том числе двух треугольников, их данные и будут выведены при выполнении программы #include<stdio.h>struct{char t; float x,y,d,a,b,S;}m[100]={{1,5,6,45,60,20,126.8},{2,3,4,5,6,30},{3,4,5,6,28.27},{1,8,3,30,70,25,214.7},{0}};main(){int i=0; printf("Triangles\n"); do if(m[i].t==1)printf("x=%f y=%f a=%f b=%f d=%f S=%f\n",m[i].x,m[i].y,m[i].a,m[i].b,m[i].d,m[i].S);while(m[i++].t);getchar();} P.S. Чуть поправил: в последнем задании в выводе были перепутаны местами обозначения a, b и d. Изменено 4 июня, 2009 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
mrnonamed Опубликовано 4 июня, 2009 Жалоба Поделиться Опубликовано 4 июня, 2009 Огромное Вам Спасибо!!! Задания составлял не я. Вы мне действительно очень помогли! Ссылка на комментарий Поделиться на другие сайты Поделиться
prev Опубликовано 4 июня, 2009 Жалоба Поделиться Опубликовано 4 июня, 2009 Еще раз здраствуйте. Так и не смог решить ту задачу(( Для заданных чисел p,a,b (a<b): имеет ли уравнение arctg(2^x-p)=2^(1/2) ... корень на отрезке [a,b] Завтра утром сдавать, последний день =( Выручайте, а =( Вот две последних =( Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 4 июня, 2009 Жалоба Поделиться Опубликовано 4 июня, 2009 prev: По старой: INPUT "a"; a: INPUT "b"; b: INPUT "p"; p: fa = ATN(2 ^ a - p) - SQR(2): fb = ATN(2 ^ b - p) - SQR(2)IF SGN(fa) * SGN(fb) <= 0 THEN PRINT "The root does exist!" ELSE PRINT "The root does not exist!" Тут две строчки, поэтому смотреть надо в достаточно широком окне, чтобы не было преждевременных переносов, этого Бейсик не любит. Ссылка на комментарий Поделиться на другие сайты Поделиться
prev Опубликовано 4 июня, 2009 Жалоба Поделиться Опубликовано 4 июня, 2009 Спасибо! =) А с примерами поможете? ;) Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 4 июня, 2009 Жалоба Поделиться Опубликовано 4 июня, 2009 (изменено) С первым помогу ;) INPUT "n"; n: s = 1: k = 1: FOR i = 1 TO n: k = -k: s = s + k / (i * i + i - 1): NEXT: PRINT s В условии второго примера запись ряда со знаком суммы не соответствует развернутому виду этой суммы, неясно, чему верить. По записи со знаком суммы и отрицательных чисел в развернутом виде быть не должно, и начинаться члены ряда должны с 1/4, а не с 1/2... Изменено 4 июня, 2009 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
prev Опубликовано 4 июня, 2009 Жалоба Поделиться Опубликовано 4 июня, 2009 Гранд Мерси ;) Завтра буду с преподавателем разбираться :-) Ссылка на комментарий Поделиться на другие сайты Поделиться
AutoGen Опубликовано 6 июня, 2009 Жалоба Поделиться Опубликовано 6 июня, 2009 Народ хелп.....2 месяца не было предмета а сеня пришол и дал задачку......крайний срок вторник..... :rolleyes: . Смысл задачи......дано 18 однобитных чисел......их надо сложить по схеме 9-битного сумматора......в Delphi... http://slil.ru/27732858 сдесь схема,и пример задачи.....который получилсо....но не то.... Вообщем на форму должна по шагово выводится та самая схема с промежуточными результатами, ну и ответы.... Вся проблема вообщемто в той схеме.....т.к. просто сложение однобитных чисел реализовано.... Народ хелп!!! Плииииз горю!!! даже не наю когда делать(((( сессия а тут дали..... Напишите в личку или в асю кто сможет помочь.....хееелп последняя задача :cool: Ссылка на комментарий Поделиться на другие сайты Поделиться
sender Опубликовано 7 июня, 2009 Жалоба Поделиться Опубликовано 7 июня, 2009 Здраствуйте! Помогите пожалуйста мне. Мне нужно визуализация сортировки методом пузырёк на AJAX. :) Ссылка на комментарий Поделиться на другие сайты Поделиться
prev Опубликовано 8 июня, 2009 Жалоба Поделиться Опубликовано 8 июня, 2009 2Тролль Добрый день. Был на сдаче. Все правильно. Но к третьей условие утверждает верно Пока допуск не поставил Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 8 июня, 2009 Жалоба Поделиться Опубликовано 8 июня, 2009 (изменено) prev: Но к третьей условие утверждает верно Да уж, чем бы дитятко не тешилось... Но тебе надо получить допуск, следовательно, если для этого нужно на некоторое время принять, что дважды два - пять - почему бы и нет? В конце концов ты получаешь от преподавателя допуск, а не он от тебя. В военное время значение синуса может достигать четырех... Будем исходить из выкладок твоего преподавателя. Тогда ряд суммируется программкой s = 1: p = -1: WHILE ABS(p / s) > .0000001: p = -p / 2: s = s + p: WEND: PRINT s и результат равен 1.333333 Для сравнения можно составить программу и по левой части приведенного тобой "тождества" s = 1: p = 0.5: WHILE ABS(p / s) > .0000001: p = p / 2: s = s + p: WEND: PRINT s Результат будет равен 1.500000 Однако дразнить гусяпреподавателя не советую. Если уж ты ему не смог доказать, что он не прав, то старайся острый угол обходить стороной - вот вам, Ваше Сиятельство, программа по вашей формуле... Изменено 8 июня, 2009 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
prev Опубликовано 8 июня, 2009 Жалоба Поделиться Опубликовано 8 июня, 2009 Это ко второй, да? Препод у нас настырный, будем его с ноутбуком теперь вылавливать, что бы поставил лабы... А можете объяснить алгоритм?, что бы как то вникать. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 10 июня, 2009 Жалоба Поделиться Опубликовано 10 июня, 2009 prev: Программы-то умещаются каждая в одну строку. Что тут объяснять? Задаем начальные значения для суммы и очередного члена ряда. Затем в цикле вычисляем новый член ряда корректировкой предыдущего (так быстрее, чем вычислять его по исходной формуле) и добавляем к сумме. Когда значение очередного члена ряда станет меньше накопленной суммы в 10 млн. раз, заканчиваем цикл и печатаем значение суммы. Что у вас за детский сад? :) Изучение QBASIC, препод, который, умножая единицу на себя, ухитряется получать отрицательные числа... Ссылка на комментарий Поделиться на другие сайты Поделиться
Random Опубликовано 14 июня, 2009 Жалоба Поделиться Опубликовано 14 июня, 2009 :g: Плиз помогите..написать программу на Си вот задание: Сформировать файл из значений случайных величин(дробные). Определить для данной последовательности сумму компонентов значения которых больше 0,5. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 14 июня, 2009 Жалоба Поделиться Опубликовано 14 июня, 2009 Random: #include <stdio.h>#include <time.h>int main(){int i,n; float p,s; FILE *f; srand(time(NULL)); if ((f=fopen ("d.dat","w"))==NULL)perror("\n error 1");for(i=0;i<100;i++){p=rand()%1000/1000.; fwrite(&p, sizeof(p),1,f);} fclose(f);if ((f=fopen("d.dat","r"))==NULL)perror("\n error 2");fseek(f,0,SEEK_END); n=ftell(f); n=n/sizeof(p); rewind(f);s=0; for(i=0;i<n;i++){fread(&p,sizeof(p),1,f); if(p>.5)s+=p;}printf("\nSum=%.3f\n",s); fclose(f); getchar(); } Записываем в файл d.dat 100 случайных чисел в диапазоне от 0 до 1, потом читаем этот файл и суммируем числа, бОльшие 0,5. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти