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

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


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

Всем доброго времени суток.

Задача такова:

Необходимо найти производную функции аналитически.

Т.е. юзер вводит некое выражение, например 2*x^3-ln(x) и программа выдаёт ответ 6*x^2-1/x.

Язык: Надо написать на билдере С++, но суть не в билдере, а в самом коде.

Заранее спасибо буду рад любым идеям.

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

Заранее извиняюсь за большое количество кода, ко мозг кипит. Если у кого свежа голова - посмотрите в чем проблема.

#include <vcl.h>#pragma hdrstop#pragma argsused#include <conio.h>#include <stdlib.h>#include <iostream.h>#include <fstream.h>#include <iomanip.h>struct student {char group[10];char PIB[60];char gender;int date;int bal_av;};void PrintFile (ifstream &inStudent){cout<<setiosflags(ios::left)<<setw(15)<<"PIB"<<setw(13)<<"Group"<<setw(11)<<"Gender"<<setw(10)<<"Date"<<setiosflags(ios::right)<<setw(5)<<"Seredniy bal"<<endl;student blankStudent;while (1){inStudent.read((char*)&blankStudent,sizeof(blankStudent));  if(inStudent.eof()) break;  cout<<setiosflags(ios::left)  <<blankStudent.PIB  <<setw(16)<<blankStudent.group  <<setw(10)<<blankStudent.gender  <<setw(12)<<blankStudent.date  <<setiosflags(ios::showpoint|ios::right)<<setw(13)  <<blankStudent.bal_av<<endl;	  }}float FunctionVik (ifstream &inStudent){student Change[20];int i=0;while (1){inStudent.read((char*)&Change[i],sizeof(Change[i]));if(inStudent.eof()) break;i++;}inStudent.close();int sum=0,k=0;for (int j=0; j<i;j++){if (Change[j].gender=='w') {sum+=(2010-Change[j].date);k++;}}return sum/k;}void CleanInSame (ifstream &inStudent){int year=(int)FunctionVik(inStudent); int i=0;student Change[20];while (1){inStudent.read((char*)&Change[i],sizeof(Change[i]));if(inStudent.eof()) break;i++;}inStudent.close();ofstream outStudent ("d:\\base.dat", ios::binary);if (!outStudent){  cerr<<"File can't open"<<endl;  exit(1);  }  for (int k=0; k<i; k++){  if (((2010-Change[k].date)<=year&&Change[k].gender=='w')||Change[k].gender=='m')  outStudent.write((char*)&Change[k],sizeof(Change[k]));}  outStudent.close();  }void main(){char skip,fl;student blankStudent;ofstream outStudent ("d:\\base.dat", ios::binary);if (!outStudent){  cerr<<"File can't open"<<endl;  exit(1);  } int count; cout<<"Write count of students: "; cin>>count; // zaluwae kinec stri4ku v potoci, tomy po getline prohodut pysta stri4kafor (int i=0; i<count; i++){	cout<<"Student's name:  ";	cin>>skip;	cin.putback(skip);	cin.getline(blankStudent.PIB,59);	cout<<"Group: "; cin.getline(blankStudent.group,9);	cout<<"Gender: "; cin>>blankStudent.gender;	cout<<"Date: : "; cin>>blankStudent.date;	cout<<"S_bal: "; cin>>blankStudent.bal_av;	outStudent.write((char*)&blankStudent,sizeof(blankStudent)); } outStudent.close(); ifstream inStudent ("d:\\base.dat", ios::binary); inStudent.close(); char item=0; action: cout<<"\n\nChoose Action:\n"; cout<<"\n1.Print File."; cout<<"\n2.Clean in same file.\n3.Function.\n"; cin>>item; switch(item){ case '1': inStudent.open ("d:\\base.dat", ios::binary);  PrintFile (inStudent); inStudent.close();  break; case '2': inStudent.open ("d:\\base.dat", ios::binary); CleanInSame (inStudent); inStudent.close();  inStudent.open ("d:\\base.dat", ios::binary);  PrintFile (inStudent); inStudent.close();  break; case '3': inStudent.open ("d:\\base.dat", ios::binary); cout<<"\nSeredniy vik *inok: "<<FunctionVik(inStudent); inStudent.close(); break; default: cout<<"\nWrong number!!! Choose again."; goto action;} cout<<"\nContinue?";cin>>fl; if (fl=='1') goto action; elsegetch();}

что не работает? Вывод записей осуществляется. Счисление среднего возраста студенток - работает. Не работает функция удаления записей, в которых возраст студенток старше среднего. При попытке вызова функции CleanInSame получаю ошибку деления на ноль. Также если например запустить функции Print, то после неее функция исчисления среднего возраста тоже дает деление на ноль. Если запустить первой функцию исчисления среднего результата - после нее не работает функция print - она просто не дает результата. Вот так вот :)

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

Спасите !!!!защита во вторник , а программа не работает !люблю её уже месяц!!

Найдите ошибочку (((

:blink: даны последовательность 20-ти случайных чисел и N - натуральное число , введенное с клавиатуры.Отсортировать все числа по возрастанию ,сделав предварительные вычисления X1+N ,X2-N,X3+N,X4-N и тд.Результат оформить в виде таблицы :g:

program kira1;

var

mas: array[1..20] of integer;

n,check,i,j: integer;

c1,c2,c3,c4,c5,c6:char;

begin

randomize;

c1:=chr(218);

c2:=chr(196);

c3:=chr(191);

c4:=chr(179);

c5:=chr(192);

c6:=chr(217);

(Продолжить)

write('Vvedite pojaluista N: ');

readln(n);

for i:=1 to 20 do

begin

mas:=random(100);

writeln(mas:4);

end;

check:= (i mod 2);

for i:=1 to 20 do begin

if (check=0) then

mas:=mas-n

else

mas:=mas+n;

end;

for j:=1 to 20 do

for i:=1 to 20-j do

if mas>mas[i+1] then

begin

check:=mas;

mas:=mas[i+1];

mas[i+1]:=check;

end;

writeln(c1,c2,c2,c2,c2,c2,c2c2,c2,c2,c2,c2,c2,c2,c2,c2,c3);

i:=1;

while(i<21) do

begin

write(c4);

for j:=1 to 5 do

begin

write(mas:4,c4);

inc(i);

end;

writeln;

writeln(c5,c2,c2,c2,c2,c2,c2c2,c2,c2,c2,c2,c2,c2,c2,c2,c6);

end;

writeln;

write('Press Enter to exit...');

readln;

end.

пожалуйста!!!!!!!

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

Друзья, очень прошу помочь сделать лабы по С. Много болел, сейчас сам не успеваю сделать — зашиваюсь с курсовыми. Буду крайне благодарен. :g:

1.

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

2. EEPROM — память микропроцессора

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

3.

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

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

kiracoconut:

program kira1; var m:array[1..20]of integer; c,n,i,j:integer; begin randomize; for i:=1 to 20 do m[i]:=random(100); write('Vvedite pojaluista N: '); readln(n); writeln;for i:=1 to 20 do write(m[i]:4); writeln;j:=1; for i:=1 to 20 do begin m[i]:=m[i]+j*n; j:=-j end;for i:=1 to 20 do write(m[i]:4); writeln;for j:=1 to 20 do for i:=1 to 20-j do   if m[i]>m[i+1] then begin c:=m[i]; m[i]:=m[i+1]; m[i+1]:=c end; for i:=1 to 20 do write(m[i]:4); writeln;write('Press Enter to exit...'); readln end. 

Понятие таблицы предполагает помещение элементов в ячейки, но специальное выделение границ ячеек линиями совершенно необязательно. Вообще рисовать линии сетки при ширине экрана 80 символов значит делать строки из 20 чисел нечитаемыми.

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

я спрашывал по посту http://www.softboard.ru/index.php?s=&s...st&p=490843 . Елси кому надо - решение - забыл возвращать указатель на начало файла

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

. Ввести строку из букв. Гласные буквы вывести в одном окне по диагонали окна, согласные - в другом окне по другой диагонали. Второе окно должно появиться через 3 секунды после первого. По окончанию работы программы должен прозвучать звуковой сигнал. Выход из программы: нажатие клавиши ESC.

я в шоке это нужно в паскале написать

с модулем crt нуна делать

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

Друзья, очень прошу помочь сделать лабы по С. Много болел, сейчас сам не успеваю сделать — зашиваюсь с курсовыми. Буду крайне благодарен. :)

1.

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

2. EEPROM — память микропроцессора

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

3.

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

:)

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

переделать через процедуру помогите плиз

Элемент двухмерного массива называется локальным минимумом, если он строго меньше всех имеющихся у него соседей. Подсчитать количество локальных минимумов заданной матрицы размером NxN; найти максимум среди всех локальных минимумов

uses crt;

type Matr=array[1..100,1..100] of integer;

var i,j,k,n,m,max,elem:integer;

a:Matr;

function LocMin(i,j:integer;a:Matr):boolean;

begin

LocMin:=((i=1)or(a[i,j]<a[i-1,j]))and

((j=1)or(a[i,j]<a[i,j-1]))and

((i=n)or(a[i,j]<a[i+1,j]))and

((j=m)or(a[i,j]<a[i,j+1]));

end;

begin

clrscr;

max:=0;

write ('Vvedite matrizu razmernosti n*m ');

readln(n,m);

writeln;

for i:=1 to n do

for j:=1 to m do

begin

write('Vvedite znachenie[',i,',',j,']:');

readln(a[i,j]);

end;

for i:=1 to n do

begin

for j:=1 to m do

begin

write(a[i,j]); write(' ');

end;

writeln;

end;

writeln;

k:=0;

for i:=1 to n do

for j:=1 to m do

if LocMin(i,j,a) then begin

k:=k+1;

if a[i,j]>max then max:=a[i,j];

end;

writeln('kolichestvo lokalnich minimov=',k);

writeln('maksimalnij element =',max);

readln

end.

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

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

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

#include <vcl.h>#pragma hdrstop#include <iostream.h>struct dl_node { struct dl_node  *next; //next struct dl_node  *prev; //prev};struct int_list { struct dl_node  node; char *		value;};void list_append(struct dl_node *to, struct dl_node *what);void list_init (struct dl_node *list);void list_append(struct dl_node *to, struct dl_node *what) {what->next = to->next;what->prev = to;to->next = what;what->next->prev = what;	/* FIXED: */}void list_init (struct dl_node *list) {list->next = list->prev = list;}struct dl_node	our_list;struct int_list	*element;int main(int argc, char* argv[]){list_init (&our_list); char skip;bool  i=true; int ans; char text[30];for (int j = 0; j < 256; j++) text[i]=0;do {cout<<"Etap krygoobigy:\n";for (int j = 0; j < 256; j++) text[i]=0;cin>>skip;cin.putback(skip);cin.getline(text,29);element = (struct int_list *)malloc (sizeof (int_list));element->value = text;list_append (&our_list, (struct dl_node*)element);cout<<"Continue?1/0"; cin>>ans; if (ans==1) i=true; else i=false;}while (i); i=true;do {cout<<"\n"<<element->value<<"\n"; element->node.next;cout<<"Continue?1/0"; cin>>ans; if (ans==1) i=true; else i=false;}while (i);getchar();getchar();return 0;}

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

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

#include <vcl.h>#pragma hdrstop#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<alloc.h>#define null 0struct node{char *text;struct node *link;}*start,*last;void create(char *data){struct node *q,*tmp;tmp=(struct node  *)malloc(sizeof(struct node));tmp->text=data;tmp->link=null;if(last==null){last=tmp;tmp->link=last;}else{tmp->link=last->link;last->link=tmp;last=tmp;}}void add(char *data){struct node *q,*tmp;tmp=(struct node  *)malloc(sizeof(struct node));tmp->text=data;tmp->link=last->link;last->link=tmp;} void disp()  {  struct node *q;  if(last==null)  {  printf("list isdempty");  }  q=last->link;  while(q!=last)  {  printf("%s",q->text);  q=q->link;  }  printf("%s",last->text);  }void main(){int ch,n,m,position,i;char s[20];last=null;create("");while(1){printf("\n1.add\n2.disp\n3.exit");printf("\nChoose ");scanf("%d",&ch);switch(ch){case 1:printf("Item:");scanf("%s",&s);add(s);break;case 2:disp();break;case 3:exit(0);break;default:printf("wrong choice");}}}

один з оптимальных вариантов. Но додавание елемента осуществляется только с последним елементом. Тоисть, например после ввода

123

456

789

Результат 789789789

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

снова нужна ваша помощь . . .

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

Нужно чтобы программа проделала 100, 1000, 10000, 100000 таких вот экспериментов (кидков) и вывела потом количество положительных результатов . . .

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

core_st:

В первой программе было непонятно что вообще, конструкции типа while(i); остались за пределами моего понимания...

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

"Любовь - кольцо, а у кольца начала нет и нет конца..." :blush2:

last там в принципе не должно быть.

Я бы сделал вместо start и last одну ссылку current на текущую запись, а метод add, который создает новую запись с данными, таким:

он создает новую запись с данными, и, если списка нет (указатель на текущую запись current==NULL), то в этой записи в ссылку на следующую заносится адрес самой этой записи (создается кольцевой список из одной записи), а если список уже есть (ссылка current на текущую запись ненулевая), то ссылка текущей записи на следующую копируется в новую запись, а в текущую запись вместо скопированной ссылки помещается ссылка на новую запись. Вот мы и включили новую запись в кольцевой список.

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

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

ts@ndr:

var d:array[1..6]of byte; s,i,n:longint; k,j:byte;begin n:=10; randomize; for k:=1 to 4 do begin  s:=0; n:=n*10;  for i:=1 to n do  begin   for j:=1 to 6 do d[j]:=0;   for j:=1 to 5 do inc(d[random(6)+1]);  for j:=1 to 6 do if d[j]=3 then inc(s);  end;  writeln('N=',n:8,'	 S=',s:8);end;readlnend.

Небольшое пояснение: в d[j] после каждого бросания пяти костей будет записано, сколько раз вышло j. Если для какого-то j было три раза - не зря бросали кости :blush2:, увеличиваем число удач на единицу.

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

я таки туплю. 3 часа не могу ту прогу сделать.

struct node{char *text;struct node *link;}*current;void add(char *data){struct node *tmp;tmp=(struct node  *)malloc(sizeof(struct node));tmp->text=data;if (current==null){current=(struct node  *)malloc(sizeof(struct node));current->link=tmp;} else {tmp=current->link;current->link=tmp;}}void disp()  {struct node *q;if(current==null) {  printf("list isdempty");}  q=current->link;  while(q!=current){  printf("%s",q->text);  q=q->link;}  printf("%s",current->text);}void main(){int ch,n,m,position,i;char s[20];while(1){printf("\n1.add\n2.disp\n3.exit");printf("\nChoose ");scanf("%d",&ch);switch(ch){case 1:printf("Item:");scanf("%s",&s);add(s);break;case 2:disp();break;case 3:exit(0);break;default:printf("wrong choice");}}}

получаю acess violation в строке printf("%s",q->text);

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

core_st:

Не путай между собой C и C++. Нельзя использовать строки C с операциями C++. В C, например, НЕТ присваивания строк - надо вызывать специальную функцию. И когда ты объявляешь строку типа *s, память для нее НЕ выделяется - фактически это лишь указатель на начало строки, которой нет ;)

И не забывай, что null и NULL - разные вещи ;)

Немного доработал твою программу. Использовал только средства чистого C.

#include<stdio.h>#include<stdlib.h>#include<string.h>struct node{char text[20]; struct node *link;}*current=NULL;void add(char *data){struct node *tmp=(struct node *)malloc(sizeof(struct node)); strcpy(tmp->text,data);if(current==NULL)tmp->link=tmp; else{tmp->link=current->link; current->link=tmp;}current=tmp;}void disp(){if(current==NULL)printf("list is empty");else{printf("%s\n",current->text); current=current->link;}}int main(){char ch[20],s[20];while(1){ printf("\nChoose: 1:add   2:disp   3:exit\n"); scanf("%s",ch); switch(*ch){case '1':printf("Item: ");scanf("%s",s); add(s); break;case '2':disp(); break;case '3':exit(0); break;default:printf("wrong choice!!!\n"); break;} }}

Записи показываться по disp будут начиная с последней введенной.

P.S. Немного подправил - добавил инициализацию current при объявлении.

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

To maksimilian

На всякий случай - прочтите, пожалуйста.

P.S. Надеюсь на понимание...

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

maksimilian:

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

Не говоря уже о том, что за 12 минут между сообщениями, скорее всего, и Скорая помощь не приедет :)

var p,r,s,n:integer; i:longint;beginwrite('N ? '); readln®; if r<=12 then s:=r else s:=12; i:=1; for p:=1 to s do i:=i*p;write('Factorial is '); if r<=12 then writeln(i) else writeln('too big!');s:=10; repeat p:=s; s:=i mod 10; if p=s then break; i:=i div 10 until i=0;writeln('Two digits side by side: ',i<>0); readlnend.

P.S. На самом деле проверка, есть ли в n! рядом две одинаковые цифры, осуществляется куда проще, но в программе это проверяется "в лоб", без математики. Вообще же программа проверки этого вся уложилась бы в одну маленькую строчку:

var i:word; begin readln(i); writeln(i>8); readln end.
Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

меню: Создание файла, Просмотр файла, Поиск, Выход. В файле содержатся структуры со сведениями об абитуриентах: № абитуриента, ФИО, адрес, название предмета, оценка. Вывести информацию об абитуриентах, получивших по заданному предмету положительные оценки.

#include <stdio.h>#include<conio.h>#include<string.h>struct abityrent{int nomer;char fio[50];char adres[50];char predmet[20]; int ocenka[1];} a1,styd;void cozdat (FILE*);void prosmotr (FILE*);void poisk (FILE*);void exit (FILE*);main(){char c;FILE*nf;while (1){clrscr();puts("++++ меню ++++");puts("1-создание");puts("2-просмотра");puts("3-поиск");puts("0-выход");c=getch();switch©{case '1':cozdat(nf); break;case '2' :prosmotr(nf); break;case '3' :poisk(nf); break;case '0' :return 0;defaults: puts("*неверный ввод ");}}}///////////////////////////////////////////////////////////////void  cozdat(FILE*nf){char ch;nf=fopen("file.dat","wb");clrscr();printf("\n ввод абитуриентов\n");do{printf("\n-введите номер*:\n");scanf("%d",a1.nomer);printf("\n введите фио:\n");scanf("%s",a1.fio);printf ("\n-адрес*:\n");scanf("%s",a1.adres);printf ("\n предмет  :\n");scanf("%s", a1.predmet);printf("\n оценка: \n");scanf("%d",a1.ocenka);fwrite(&a1, sizeof(a1),1,nf);printf("\n закончить? д/н* \n");ch=getch();}while(ch !='¤');fclose(nf);}/////////////////////////////////////////////////////////////////////////void prosmotr (FILE*nf){ int i;clrscr();nf=fopen("file1.dat","rb");i=1;fread(&a1, sizeof(a1),1,nf);while(!feof(nf)){printf("\n %d %s %s %s %d",i,a1.nomer,a1.fio,a1.adres,a1.predmet,a1.ocenka);fread(&a1, sizeof(a1),1,nf);i++;}fclose(nf);getch();}////////////////////////////////////////////////////////////////////////////void poisk(FILE*nf){int i;clrscr();a1=styd[i];nf=fopen("file1.dat","rb");printf("\n поиск хорошистов \n");printf("\n введите предмет");scanf("%s",a1.predmet);for(i=0,i++;)

не могу организовать вывод абитуриентов с положительными оценками, подскажите

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

sopik:

не могу организовать вывод абитуриентов с положительными оценками
А у них бывают отрицательные? :blush2:)

Программу смотреть не стал, к тому же у меня другой компилятор, но относительно этого -

просто в prosmotr перед printf дай if(a1.ocenka>2)

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

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

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

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



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