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

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


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

он вроде бы считает правильно,но не правильно считывает второй минус---

можно сделать чтоб он считывал из строки (gets(prim) или scanf("%s",&prim))

Да, у меня это исходно было сделано на C++ и вроде все работало нормально, а ты просил на С, поэтому я переписал ввод-вывод на средства С и при переписке где-то, видимо, ошибся. Поскольку тебе нужен сейчас ввод из строки, ввод все равно переделывать, так что я переписал ввод на С заново с переделкой на ввод из строки. Вроде работает правильно.

#include <stdio.h>#include <ctype.h>char s[200]; int n=0;float number(){ int res=0; while(1){char c=s[n++]; if(isdigit©)res=res*10+c-'0'; else{n--; return res;}}}float expr();float sk(){ if(s[n++]=='('){n++; return expr();}else{n--; return number();}}float factor(){float x=sk(); while(1)  switch(s[n++]){case '*': x*=sk(); break;case '/': x/=sk(); break;default:  n--; return x;}}float expr(){ float x=factor(); while(1)switch(s[n++]){case '+': x+=factor(); break;case '-': x-=factor(); break;default:  n--; return x;}}int main(){ printf("Expression?: "); gets(s); printf("Result: %f\n",expr()); getchar();}

benefit

так что Мне нада создавать стэк ?... Вот что есть по очередям и стэкам (с методички)... как я понял приорит LIFO в стэках
Ничего себе примерчики вам дают... почти полтысячи строк.

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

Стек работает по принципу LIFO, но LIFO бывает не только в стеке. Это просто обозначение характера обмена со структурой данных. У тебя, насколько я понял задание, принцип LIFO применяется если в очередь подается элемент с таким же приоритетом, какой уже есть у какого-то элемента в очереди Стек тут не при чем, просто новый элемент становится в очередь (массив) впереди старого. Тогда он и выйдет из очереди первым.

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

Тролль, привет! Задачка вот такая...

Реализовать на C++.

С комментариями и архивом с готовой рабочей программой (.exe)

Задания на работу с API-функциями:

1. Определить версию операционной системы и платформу. Определить раскладку клавиатуры и изменить ее.

2. Определить дату создания любого выбранного файла. Получить текущую дату и время.

Буду очень признателен!=))

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

Ну вот очередь с приоритетом

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

1-заполнить очередь

2-удалить элемент

3-просмотреть очередь

4-выйти

очередь с приоритетом.txt

очередь с приоритетом.txt

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

Надо как то вот это вставить тока как

do{

system("CLS");

cout<<"1-заполнить очередь"<<endl;

cout<<"2-удалить элемент"<<endl;

cout<<"3-просмотреть очередь"<<endl;

cout<<"4-выйти"<<endl;

cin>>main;

switch(main){

case 1:??????

case 2:??????

case 3:??????

case 4:??????

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

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

Пока есть такая наработка:

uses crt;

Const

NN=3;

Type

Graph = array[1..nn,1..nn] of longint;

Var

n:integer;

Procedure Floyd (var a:graph; c:graph; var p:graph);

var i,j,k:integer;

begin

for i:=1 to n do

for j:=1 to n do begin a[i,j]:=c[i,j]; p[i,j]:=0; end;

for i:=1 to n do a[i,i]:=0;

for k:=1 to n do

for i:=1 to n do

for j:=1 to n do

If (a[i,k]+a[k,j]<a[i,j]) then

begin

a[i,j]:=a[i,k]+a[k,j];

p[i,j]:=k;

end;

end;

procedure ReadGraph(var a:graph);

var

i,j:integer;

begin

write(' n= ');readln(n); {mogno ispolzovat NN}

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

begin write(' G',i,',',j,'= ');readln(a[i,j]); end;

writeln;

end;

var

a,c,p:graph;

i,j:integer;

begin

clrscr;

ReadGraph( c );

floyd(a,c,p);

writeln('---------------------------');

for i:=1 to n do

begin

for j:=1 to n do write(c[i,j]:3);

writeln;

end;

writeln('---------------------------');

for i:=1 to n do {{}

begin

for j:=1 to n do write(a[i,j]:3);

writeln;

end;

writeln('---------------------------');

for i:=1 to n do

begin

for j:=1 to n do write(p[i,j]:3);

writeln;

end;

readln;

end.

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

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

В общем, если кто может переделать или же дать более универсальную задачу.

Заранее, спасибо.

ris1.JPG

post-114749-0-97761000-1338028780_thumb.

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

Доброго времени суток, помогите кто может исправить программу, требуется что бы переменная t вела отсчет в обратном порядке. Заранее спасибо.

код броска камня.JPG

post-114546-0-20279800-1338044492_thumb.

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

Ребятушки помогите написать програмку на Паскале, точнее несколько програмок

1)Заменить строку матрицы Р(n,m) с минимальной суммой элементов на строку, где находится максимальный элемент матрицы.

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

3)Удалить из строки все слова, начинающиеся на букву «о».

пожалуйста похэлпите нубу. Буду очень благодарен=)

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

Artys

требуется что бы переменная t вела отсчет в обратном порядке
Она и так ведет обратный отсчет - конечное значение нуль.

И приводи коды не снимком, а текстом - так можно в случае чего их скопировать и проверить, а устанавливать программу для распознавания текста на рисунках специально для чтения этого кода мне не хочется :)

Serty

Задания на работу с API-функциями
Это просто на поиск в справочнике API-функций. Надеюсь, что порыться в справочнике ты можешь и без меня, тем более что Visual Studio у меня не установлена, а с Dev-C++ это сложнее.

benefit

Надо как то вот это вставить тока как
do{system("CLS");cout<<"1-заполнить очередь"<<endl;cout<<"2-удалить элемент"<<endl;cout<<"3-просмотреть очередь"<<endl;cout<<"4-выйти"<<endl;cin>>main;switch(main){case 1:??????case 2:??????case 3:??????case 4:??????

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

Ну, по данному вам примеру функция main будет выглядеть как

int main(){Queue q=CreateQueue(5);int n,a,pr,k;setlocale(LC_ALL,"rus");while(true){system("CLS");cout<<"1-заполнить очередь"<<endl;cout<<"2-удалить элемент"<<endl;cout<<"3-просмотреть очередь"<<endl;cout<<"4-выйти"<<endl;cin>>k;switch(k){case 1:  cout<<"Количество элементов: "; cin>>n; for(int i=0;i<n;i++){  cout<<i<<" Значение: "; cin>>a; cout<<i<<" Приоритет: "; cin>>pr; Enq(q,a,pr);}; break;case 2: Deq(q); break;case 3: for(int i=0;i<n;i++)cout<<Deq(q)<<' '; break;case 4: return 0;		  }}}

В данном вам примере приоритетная очередь реализована не по заданию, на списке. а не на массиве, но навряд ли у вас смотрят на точное соответствие заданию - скорее всего, если чем-то похоже, уже сойдет... Кстати, в C++ уже есть готовый встроенный тип данных "приоритетная очередь", но вы до использования таких типов неизвестно когда дойдете...

flipeed

Помогите решить

1) Дано натуральное число n. Определить, является ли оно простым.

2)Дана матрица целых чисел X(n, т). Упорядочить ее столбцы по возрастанию сумм их элементов. Вывести исходную и полученную матрицы. Значения буквенных переменных задавать с клавиатуры.

3)По исходным строкам а$ и b$ определить слова, входящие в строку b$, но не входящие в строку а$, добавить их к концу строки а$. Вывести полученную строку.

В qbasic

Тут помочь можно разве что написав за тебя ;) Навряд ли тебе нужно объяснение того, что такое простое число...

Да и учителя у вас те еще - "буквенные переменные".... :)) Не говоря уже о выбранном языке допотопных времен...

1)

INPUT i: FOR j = 2 TO SQR(i): IF (i \ j) * j = i THEN k = 1NEXT: IF k THEN PRINT i; " - composite number" ELSE PRINT i; " - prime number"

2)

DIM n AS INTEGER, m AS INTEGER: INPUT "n"; n: INPUT "m"; mDIM x(n, m) AS INTEGER, y(m) AS INTEGERDIM i AS INTEGER, j AS INTEGER, k AS INTEGER, z AS INTEGERRANDOMIZE TIMER: FOR i = 1 TO n: FOR j = 1 TO m: x(i, j) = INT(RND * 200 - 100): NEXT: NEXTPRINT "Source matrix": FOR i = 1 TO n: FOR j = 1 TO mPRINT USING "#####"; x(i, j); : NEXT: PRINT : NEXTFOR j = 1 TO m: y(j) = 0: FOR i = 1 TO n: y(j) = y(j) + x(i, j): NEXT: NEXTFOR i = 1 TO m - 1: FOR j = 1 TO m - iIF y(j) > y(j + 1) THEN SWAP y(j), y(j + 1): FOR k = 1 TO n: SWAP x(k, j), x(k, j + 1): NEXTNEXT: NEXTPRINT "Result matrix": FOR i = 1 TO n: FOR j = 1 TO mPRINT USING "#####"; x(i, j); : NEXT: PRINT : NEXTPRINT

3)

PRINT "a: "; : LINE INPUT a$: PRINT "b: "; : LINE INPUT b$b$ = b$ + " ": n = 1WHILE n < LEN(b$): m = INSTR(n, b$, " ")IF m <> 0 THEN c$ = MID$(b$, n, m - n): n = m + 1 ELSE n = n + 1IF INSTR(a$, c$) THEN  ELSE a$ = a$ + " " + c$WEND: PRINT a$
Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Троль спасибо ! но есть маленькая проблема с выводом очереди на экран как только выбираешь тут же вылетает ошибка

вот скрин

1.png

post-114684-0-15075900-1338060836_thumb.

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

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

на кубэйсике!

еще раз отправляю,просто очень срочно нужно!

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

benefit

Проверил у себя на компьютере. В Dev-C++ никаких ошибок не выдает. Единственное, при просмотре результата вывода очереди на печать результат тут же стирается с экрана, для задержки вывода в case 3 перед break вставь cin.get(); cin.get();

По сообщению об ошибке похоже, что ты пытаешься прочитать содержание очереди, ничего в нее не записав, тогда значение n не определено. Чтобы такого не случалось, замени объявление int n на int n=0

LoooOl

Тут помочь не смогу, такую древнюю программу, как QBasic, в графическом режиме мне на Windows 7 не запустить без специальных ухищрений вроде установки имитатора древней DOS. Вас зачем-то учат программам, которые не только сами давно не поддерживаются, но их даже запустить нельзя :( QBasic был выпущен в 1991 году :)

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

ArtysОна и так ведет обратный отсчет - конечное значение нуль.

И приводи коды не снимком, а текстом - так можно в случае чего их скопировать и проверить, а устанавливать программу для распознавания текста на рисунках специально для чтения этого кода мне не хочется :)

надо что бы она наоборот вела расчеты t от нуля.

//бросок камня без участия сопротивления воздуха

var

ygol,v0,g,a:integer;

x0,y0,t,time,L,ygl,vx,vy:real;

begin

g:=10;

write('Введите начальную скорость броска (Ввод данных в системе СИ): ');

read(v0);writeln(v0,'(м/с)');

if v0>=7910 then

writeln ('камень сгорел в слоях атмосферы!!!')

else

write('Введите угол под которым бросают камень: ');

read(ygol);writeln(ygol,'(grad)');

ygl:=ygol*pi/180;

L:=sqr(v0/g)*sin(2*ygl);

writeln('_______________________________________________________________');

writeln('без учета сопротивления воздуха камень пролетит ',L,'(м)');

begin

a:=0;

x0:=0;

y0:=0;

time:=(2*v0*sin(ygl))/g;

writeln('время всего полета составляет: ',t,'(с)');

repeat

v0:=v0-1;

t:=(2*v0*sin(ygl))/g;

{ vx:=v0*cos(ygl);

vy:=v0*sin(ygl); }

x0:=x0+v0*cos(ygl);

y0:=y0+v0*t*sin(ygl)-(g*sqr(t))/2;

writeln('v0=',v0,'(м/с) t=',t,'© xy(',x0,';',y0,')');

until v0=0;

end;

end.

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

Artys

Чтобы расчеты шли от нуля, просто замени в четвертой строке снизу ,t, на ,time-t,

Похоже, что это какие-то расчеты броска камня. И, похоже, в той же Вселенной, где был биллиард ;)

P.S. Может быть, лучше вместо "программы" привести условие задачи...

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

Задача 1.

Построить совокупность п равносторонних треугольников в общим центром.

Задача 2.

Сформировать квадрат, вращающийся вокруг одной из своих сторон.

Задача 3.

Вводится последовательность ненулевых чисел, завершаемая нулем. Определить произведение всех чисел данной последовательности.

Задача 4.

Дано натуральное число п. Вывести число меньшее п с минимальной суммой делителей.

Задача 1.

Сформировать по исходной строке а$ строку b$ по правилу: при встрече с строке а$ группы символов «#» отменять в формируемой строке число символов, равное количеству символов группы «#». Вывести исходную и полученную строки.

Задача 2.

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

Задача 1.

Построить совокупность п кругов радиуса r, закрашенных в случайные цвета, центры которых расположены на одной вертикали.

Задача 2.

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

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

Задача 3.

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

Задача 4.

Дано натуральное число п. Вывести число меньшее п с максимальным произведением делителей.

Задача 1.

Определить разность между максимальным и минимальным элементами массива X(n). Вывести исходный массив и полученное значение. Упорядочить массив X(n) по убыванию. Вывести полученный массив. Исходный массив элементов получить с помощью датчика случайных чисел. Значения буквенных переменных задавать с клавиатуры.

Задача 2.

Дана матрица целых чисел X(n, т). Упорядочить ее строки по возрастанию их средних арифметических. Вывести исходную и полученную матрицы. Значения буквенных переменных задавать с клавиатуры.

Задача 1.

В исходной строке а$ определить все слова, отличные от первого слова. Вывести эти слова в столбик.

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

Задача 1.

Вычислить выражения, используя для организации цикла операторы FOR … NEXT (значения переменной п задавать с клавиатуры):

Задача 2.

Определить сумму ряда с заданной точностью t () и число слагаемых, необходимых для достижения этой точности. Точность считается достигнутой, если очередное слагаемое по модулю меньше t (это и последующее слагаемое не учитываются). Использовать для организации цикла операторы DO … LOOP или WHILE … WEND (значения буквенных переменных задавать с клавиатуры):

Задача 3.

Дано натуральное число п. Определить количество цифр в этом числе.

Задача 4.

Вводится последовательность ненулевых чисел, завершаемая нулем. Определить номер максимального числа в данной последовательности.

Задача 1.

Определить сумму и количество положительных элементов массива X(n). Вывести исходный массив и полученные значения. Упорядочить массив X(n) по возрастанию. Вывести полученный массив. Исходный массив элементов получить с помощью датчика случайных чисел. Значения буквенных переменных задавать с клавиатуры.

Задача 2.

Дана матрица целых чисел X(n, т). Возвести ее во вторую степень. Вывести исходную и полученную матрицы. Значения буквенных переменных задавать с клавиатуры.

Задача 1.

Сформировать по строке а$ новую строку по правилу: если слово имеет нечетную длину, удалить в нем среднюю букву.

Задача 2.

Дана строка а$, состоящая из нескольких слов. Вывести слова, составляющие строку в алфавитном порядке.

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

немного не разобрался, можешь примером показать? там расчет от нуля пойдет?

ДА это из той же вселенной)

Вместо

writeln('v0=',v0,'(м/с) t=',t,'©    xy(',x0,';',y0,')');

напиши

writeln('v0=',v0,'(м/с) t=',time-t,'©    xy(',x0,';',y0,')');

За все остальное не отвечаю, такое впечатление, что кто-то писал программу первый раз в жизни...

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

Anton939312, 2lamihail, roof2013

Каждому сделал по задаче номер 3. Соответственно

s = 1: i = 1: WHILE i: s = s * i: INPUT i: WEND: PRINT s
INPUT j: i = j: WHILE j: s = s - (i > j): i = j: INPUT j: WEND: PRINT s
INPUT i: WHILE i: s = s + 1: i = i \ 10: WEND: PRINT s

С остальными, надеюсь, объединенными усилиями справитесь :)

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

Вместо

writeln('v0=',v0,'(м/с) t=',t,'©	xy(',x0,';',y0,')');

напиши

writeln('v0=',v0,'(м/с) t=',time-t,'©	xy(',x0,';',y0,')');

За все остальное не отвечаю, такое впечатление, что кто-то писал программу первый раз в жизни...

Спасибо разобрался, заработало)

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

Всем привет, помогите пожалуйста

1)Для заданной перестановки A чисел 1,...,100 найти максимальное k 1, при котором A^k (i) = i для всех 1 i 100.

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

3)Преобразовать заданное целое число из p - ичной системы счисления в q - ичную (p, q 16; исходное число имеет не более n знаков).

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

Атин

Все за тебя не сделаю, только решение задачи номер 3, как и предыдущим авторам сборников задач ;)

var a,r:string; i,b1,b2,p:integer; b,k:longint;beginb:=0; k:=1; r:='';write('b1: '); readln(b1); write('b2: '); readln(b2); write('n: '); readln(a);for i:=length(a) downto 1 do begin p:=ord(a[i])-48; p:=p-ord(p>48)*32-ord(p>9)*7; b:=b+k*p; k:=b1*k; end;repeat p:=b mod b2; r:=chr(p+48+ord(p>9)*7)+r; b:=b div b2 until b=0;writeln®; readlnend.

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

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

Спасибо, Тролль! А можешь подсказать на каких сайтах, я смогу найти решение еще хотя бы одной задачи? В нете просто и вправду ничего путного не нашел...

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

Здраствуйте,

Такая просьба: Можете написать комментарии к коду?

Вот, собственно, код

#include <stdio.h>#include <string.h>void Error(const char *message);main(){FILE *finp;FILE *foutp;char buffer[200];char dst[256];char *tag="<TD>",*end_tag="</TD>";char *cell;//open filesfinp  = fopen("src.csv","r");foutp = fopen("dst.htm","w");if (!finp) Error("Opening file src.csv");if (!foutp) Error("Opening file dst.htm");fputs("<HTML>\n", foutp);fputs("<HEAD>\n", foutp);fputs("<TITLE>CSV to HTML</TITLE>\n", foutp);fputs("</HEAD>\n", foutp);fputs("<BODY>\n", foutp);fputs("<TABLE>\n", foutp);while ( NULL != fgets ( buffer, 200, finp ) ){  cell=strtok(buffer,";");  fputs("<TR>", foutp);  while (cell)  {   cell=strtok(NULL,";");   strcat(dst,tag);   strcat(dst,cell);   strcat(dst,end_tag);   fprintf(foutp,"%s\n", dst);   dst[0]=0;  }  fputs("</TR>\n", foutp);}fputs("</TABLE>\n", foutp);fputs("</BODY>\n", foutp);fputs("</HTML>\n", foutp);fclose(finp);fclose(foutp);return 0;}void Error(const char *message){ printf("\n\nError: %s\n\n",message); exit(1);}

Заранее благодарен!

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

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

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

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

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

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

Войти

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

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

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



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