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

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


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

Программа на Си++ (что-то элементарное типа Dev++)

Задача:

По некоторому объекту ведется стрельба n независимыми выстрелами. Объект состоит из k частей (элементов). Вероятность попадания в i-ый элемент равна p i-ое ( i=1,2,...k)/ Найти вероятность Р того, что в результате стрельбы будет m0(нулевое) промахов, m1 (первое) попаданий в 1 элемент и т.д., вообще m i-ое попаданий в i-ый элемент. ( i=1,2,...k), Сумма элементов m i-ое от i=0 до k равна n.

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

Что касается моих мыслей, то ...

Если брать m-это количество выстрелов, n-количество экспериментов.

Т.е. определенно нужен вложеный цикл

for (int i=0;i<m;i++)

for (int j=0;i<n;j++)

Что касается определения вероятности для каждого элемента:

r1=random(100)/100 // это будет вероятность попадания. НО функция должна быть написана ВРУЧНУЮ. Random у меня здесь как пример.

if r1<p then

a=a+1; // a-это массив, где хранится количество выстрелов в каждый элемент.

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

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

Программа на Си++ (что-то элементарное типа Dev++)

Задача:

По некоторому объекту ведется стрельба n независимыми выстрелами. Объект состоит из k частей (элементов). Вероятность попадания в i-ый элемент равна p i-ое ( i=1,2,...k)/ Найти вероятность Р того, что в результате стрельбы будет m0(нулевое) промахов, m1 (первое) попаданий в 1 элемент и т.д., вообще m i-ое попаданий в i-ый элемент. ( i=1,2,...k), Сумма элементов m i-ое от i=0 до k равна n.

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

Что касается моих мыслей, то ...

Если брать m-это количество выстрелов, n-количество экспериментов.

Т.е. определенно нужен вложеный цикл

 for (int i=0;i<m;i++)for (int j=0;i<n;j++) 

Что касается определения вероятности для каждого элемента:

 r1=random(100)/100 // это будет вероятность попадания. НО функция должна быть написана ВРУЧНУЮ. Random у меня здесь как пример.if r1<p[i] then a[i]=a[i]+1; // a-это массив, где хранится количество выстрелов в каждый элемент.

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

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

Nata6enka:

Надо посчитать, в какой части из множества серий выстрелов получился нужный ряд попаданий. А нужный ряд нам задается. Насколько я понял задание. Хотя в принципе эта вероятность и так считается. Но, видимо, надо смоделировать.

Для простоты объяснения: начертили отрезок прямой, весь он - единица, вероятность попадания в каждый элемент равна соответствующей части отрезка. Так что отмечаем на нем по порядку части длиной в вероятности. Потом стреляем, то есть генерируем случайное число от нуля до единицы и проверяем, в каком оно отрезке - в этот элемент мы и попали. И так стреляем в каждой серии n раз.

В отношении программирования - прибавляем вероятности p[k], пока пока не сравняемся или превзойдем наше случайное число, как только это произошло, значит, в этот элемент и попали. И так делаем n раз.

Попадания накапливаем в массиве с номерами наших отрезков (частей мишени). После каждой серии, то есть когда набралось n выстрелов, проверяем, соответствуют ли накопленные в массиве количества попаданий заданному ряду. Если совпали, засчитываем удачу (прибавляем к переменной, в которой хранятся удачи, единицу), затем обновляем массив частей мишени и стреляем снова. Когда много раз постреляем (или когда накопится достаточно много, скажем, хоть с десяток) совпадений, делим число удач на количество серий выстрелов и вот она, наша вероятность.

Генератор псевдослучайных чисел от 0 до 1 - есть разные варианты этих генераторов. Можн сделать, например. возведением предыдущего числа в квадрат и извлечением из этого числа его средних разрядов в качестве нового числа. Ну а для приведения в интервал 0..1 поделить на максимально возможное.

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

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

1) Вычислить значения функций f1(x) и f2(x) для значений аргументов. Функцию f2(x) вычислить для ряда точностей e=0.01, e=0.001, e=0.0001 . Для указанных точностей определить количество N элементов ряда, суммируемых для достижения заданной точности. рис. к этой задаче.

2) Для заданной целочисленной матрицы X[n x n] найти максимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы.

Прикрепленные изображения

* Прикрепленное изображение: итерация.jpg

на turbo pascal

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

yuliya#1:

1а)

var f,x:real; i:integer; begin for i:= 1 to 20 do begin x:=i/20-0.65; f:=ln(1+x); writeln(x:5:2,f*f*f/6:14:8) end; readln end.

1б)

var s1,s2,s3,p,x,e:real; i,k,n,m:integer;beginfor i:=1 to 20 do begin  x:=i/20-0.65; e:=0.01/2; s1:=0; p:=-x*x/2; for k:=1 to 10000 do    begin      s2:=0;    for n:=1 to k do      begin      s3:=0; for m:=1 to n do s3:=s3+1/m; s2:=s2+s3/(n+1)     end;       p:=-p*x/(k+2)*(k+1); s1:=s1+p*s2;        if abs(p*s2)<e then begin write('    n=',i:2,', s=',s1:11:8); e:=e/10 end;   if e<0.00005 then begin writeln; break end   end end;readln end.

Второе задание оставим на завтра. По ночам хорошие люди спят ;)

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

yuliya#1:

2)

var x:array[1..10,1..10]of integer; i,j,m,n,s:integer;beginwriteln('n ? '); readln(n); for i:=1 to n do begin   writeln('Введите элементы ',i,'-й строки, разделяя пробелами');   for j:=1 to n do read(x[i,j]); readln; end; m:=0; for i:=1 to n-1 do begin s:=0; for j:=1 to i do s:=s+abs(x[i-j+1,j]); if m<s then m:=s end;for i:=1 to n-1 do begin s:=0; for j:=1 to i do s:=s+abs(x[n-i+j,n-j+1]); if m<s then m:=s end;writeln(m); readlnend.

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

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

Тролль, а с точки зрения программной реализации это как будет выглядеть? А то у меня проблемы с программированием(( Язык си++. Заранее огромное спасибо, если поможете.

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

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

#include <iostream.h>#include <stdio.h>#include <stdlib.h>#include <conio.h>using namespace std;struct LIBRARY{   char nomer[30];   char FIO[30];   char nazvanie[40];   int Year;   int kolvo;};struct STR{   LIBRARY *Library;   STR *next;};STR * create(LIBRARY * Library) {  STR *root=new STR;  root->Library=Library;  root->next=NULL;  return root;}void add(LIBRARY *Library, STR* root) {   while(root->next)     root=root->next;   root->next=new STR;   root->next->Library=Library;   root->next->next=NULL;}void printLIBRARY(LIBRARY *Library)   {   cout<<"Nomer => "<<Library->nomer<<endl;   cout<<"FIO => "<<Library->FIO<<endl;   cout<<"Nazvanie => "<<Library->nazvanie<<endl;   cout<<"Year => "<<Library->Year<<endl;   cout<<"Kolvo => "<<Library->kolvo<<endl;       cout<<endl;}LIBRARY * makeLIBRARY() {  cout<<"Enter book data:"<<endl;   LIBRARY *Library=new LIBRARY;   fflush(stdin);   cout<<"Enter book nomer: => ";   cin.getline(Library->nomer,30);   cout<<"Enter Author's FIO:  => ";   cin.getline(Library->FIO,30);   cout<<"Enter book name: => ";   cin.getline(Library->nazvanie,40);   cout<<"Enter made year:  => ";   cin>>Library->Year;   cout<<"Enter count of books:  => ";   cin>>Library->kolvo;   return Library;}int choice(){   int answer;   getch();   system("cls");   cout<<"Main menu"<<endl;   cout<<"1. Add new books to the list"<<endl;   cout<<"2. Print LIBRARY at list"<<endl;   cout<<"3. Search and delete"<<endl;   cout<<"4. Clear all entries"<<endl;   cout<<"5. Exit"<<endl;   cout<<"Enter your choice: ";   cin>>answer;   fflush(stdin);   if(answer>=1 && answer<=5)     return answer;   else     return 0;}int main(){   STR *root=NULL;   int ch;   while(1)   {      ch=choice();      if(ch==1)      {          cout<<endl;          if(root==NULL)            root=create(makeLIBRARY());          else            add(makeLIBRARY(),root);      }      else if(ch==2)      {          cout<<endl;          int i=0;          int N=0;          STR *proot=root;          while (root)          {              N++;              root=root->next;          }          LIBRARY *buf;          LIBRARY **pLibrary=new LIBRARY*[N];          root=proot;          while (root)          {                  pLibrary[i]=root->Library;                  root=root->next;                  i++;              }          root=proot;              for (i=0;i<N;i++)                  printLIBRARY(pLibrary[i]);      }           else if(ch==3)      {          char qwe[30];          char qw[30], q[1];          cout<<"Enter nomer of book => "<<endl;          cin.getline(qwe,30);          while (root)          {              if (!strcmp(qwe,root->Library->nomer))              {                     {                  printLIBRARY(root->Library);cout<<"Do you want clear this entries? (y/n) "<<endl;                  cin.getline(q,1);                       if (!strcmp(q,"y"))                                   {                               root->Library=NULL;                        }                  root=root->next;                   }                    }              else if (strcmp(qwe,root->Library->nomer))                  root=root->next;          }          cout<<endl;      }      else if(ch==5)      {          break;          cout<<endl;      }   }   return 0;} 
Ссылка на комментарий
Поделиться на другие сайты

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

Вот задание:

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

Сведения о книгах содержат:

-номер УДК;

-фамилию и инициалы автора;

-название;

-год издания;

-количество экземпляров данной книги в библиотеке.

Программа должна обеспечивать:

-начальное формирование данных обо всех книгах в библиотеке в виде двоичного дерева;

-добавление данных о книгах, вновь поступающих в библиотеку;

-удаление данных о списываемых книгах;

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

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

еще раз спс огромное, но нужна помощь еще в одной задачке на pascal.

Произвести анализ сортировок массивов . Для чего отсортировать по возрастанию массивы целочисленных элементов различной размерности: 10 элементов, 100 элементов, 2000 элементов. Анализ произвести по числу сравнений и перестановок двух элементов. Исследования производить над массивами трех типов:

1.Массив, содержащий неотсортированные элементы

2.Массив, содержащий отсортированные элементы

3.Массив, содержащий элементы, отсортированные в обратном порядке

4.Все данные свести в таблицу:

Тип массива Сортировка №1 Сортировка №2 Сортировка №3

Число сравнений Число перестановок Число сравнений Число перестановок Число сравнений Число перестановок

10 эл. Неотсорт.

10 эл. отсорт.

10 эл. Обр. пор.

100 эл. Неотсорт.

2000 эл. Обр. пор.

Сортировка пузырьком; Сортировка прямым выбором;

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

Ребят помогите программу сделать)

В одномерном массиве,состоящем из n вещественных элементов,вычислить:

1)произведение положительных элементов массива

2)сумму элементов массива,расположенных до минимального элемента

Упорядочить по возрастанию отдельно элементы,стоящие на четных местах,и элементы,стоящие на нечетных местах.

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

Lolka:

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

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

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

Ребят помогите программу сделать на Си++)

В одномерном массиве,состоящем из n вещественных элементов,вычислить:

1)произведение положительных элементов массива

2)сумму элементов массива,расположенных до минимального элемента

Упорядочить по возрастанию отдельно элементы,стоящие на четных местах,и элементы,стоящие на нечетных местах.

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

Fanat:

#include<iostream>using namespace std;int main(){float a[100],p,s,q; int i,j,m,n;  cout<<"N ? "; cin>>n; cout<<"elements? "; for(i=0;i<n;i++)cin>>a[i];  p=1; for(i=0;i<n;i++)if(a[i]>0)p*=a[i];m=0; for(i=0;i<n;i++)if(a[i]<a[m])m=i; s=0; for(i=0;i<m;i++)s+=a[i];cout<<"p="<<p<<"   s="<<s<<endl;for(j=2;j<n;j+=2)for(i=2;i<n;i+=2)if(a[i]<a[i-2]){q=a[i-2];a[i-2]=a[i];a[i]=q;}for(j=3;j<n;j+=2)for(i=3;i<n;i+=2)if(a[i]<a[i-2]){q=a[i-2];a[i-2]=a[i];a[i]=q;}for(i=0;i<n;i++)cout<<a[i]<<" "; cout<<endl;  getchar(); getchar();}
Ссылка на комментарий
Поделиться на другие сайты

Nata6enka:

Ну просто надо переписывать потихоньку инструкцию с русского языка на С :) Там ничего сложного нет, только самые простые операторы.

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

void Random(double &s){// algorithm of Lewis, Goodman, Miller and Parkconst long a=16807, m=2147483647, q=m/a, r=m%a; long t,seed;seed=long(s*m); t=seed%q*a-seed/q*r; if(t>0)seed=t; else seed=t+m; s=double(seed)/m;}#include<iostream>int main(){double s=0.5; for(int i=1;i<=20;i++){Random(s);std::cout<<s<<std::endl;}getchar();}

Меняет при каждом обращении значение аргумента на новое псевдослучайное число, равномерно распределенное между 0 и 1. Перед первым использованием надо в основной программе дать аргументу начальное значение, тоже больше 0 и меньше 1.

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

Помогите пожалуйста решить на языке Си с использованием структур.

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

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

Riki_Tiki_Tavi:

#include <stdio.h>main(){struct sc{char Fam[20]; unsigned Cl,Nsc,Oz;}S[100];int i,j=0,k=0; char T[20];for(i=0;i<100;i++){ printf("\nFamilija? "); gets(S[i].Fam); if(strlen(S[i].Fam)==0)break; printf("Class, Nomer shkoli, Ozenka? ");  scanf("%u%u%u",&S[i].Cl,&S[i].Nsc,&S[i].Oz); gets(T); k++;};for(i=0;i<k;i++)j+=S[i].Oz>=4; printf("\n%u pupils",j); getchar();}

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

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

Fanat:

#include<iostream>using namespace std;int main(){float a[100],p,s,q; int i,j,m,n;  cout<<"N ? "; cin>>n; cout<<"elements? "; for(i=0;i<n;i++)cin>>a[i];  p=1; for(i=0;i<n;i++)if(a[i]>0)p*=a[i];m=0; for(i=0;i<n;i++)if(a[i]<a[m])m=i; s=0; for(i=0;i<m;i++)s+=a[i];cout<<"p="<<p<<"   s="<<s<<endl;for(j=2;j<n;j+=2)for(i=2;i<n;i+=2)if(a[i]<a[i-2]){q=a[i-2];a[i-2]=a[i];a[i]=q;}for(j=3;j<n;j+=2)for(i=3;i<n;i+=2)if(a[i]<a[i-2]){q=a[i-2];a[i-2]=a[i];a[i]=q;}for(i=0;i<n;i++)cout<<a[i]<<" "; cout<<endl;  getchar(); getchar();}

А ты можешь написать подробно что за p,s,q,m и тд...а то я вообще не понимаю))

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

А ты можешь написать подробно что за p,s,q,m и тд...а то я вообще не понимаю))

не надо цитировать всю программу.

Это имена переменных...

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

не надо цитировать всю программу.

Это имена переменных...

просто препод может попросить расскать,не хочу неуд получить)))

!

Предупреждение:

Не надо повторять собственные сообщения, ОК?

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

Riki_Tiki_Tavi:

#include <stdio.h>main(){struct sc{char Fam[20]; unsigned Cl,Nsc,Oz;}S[100];int i,j=0,k=0; char T[20];for(i=0;i<100;i++){ printf("\nFamilija? "); gets(S[i].Fam); if(strlen(S[i].Fam)==0)break; printf("Class, Nomer shkoli, Ozenka? ");  scanf("%u%u%u",&S[i].Cl,&S[i].Nsc,&S[i].Oz); gets(T); k++;};for(i=0;i<k;i++)j+=S[i].Oz>=4; printf("\n%u pupils",j); getchar();}

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

Ошибочка `strlen' undeclared (first use this function)

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

Ошибочка `strlen' undeclared (first use this function)

Да, забыл в начале программы написать #include<string.h>

Вообще-то ты и сам бы мог добавить...

А можно и не добавлять, заменив if(strlen(S.Fam)==0)break; на if(*S.Fam==0)break;

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

помогите пожалуйста!!! буду очень благодарна!

язык pascal

1. Напечатать глухие согласные буквы, которые не входят только в одно слово. Вывести исходную последовательность слов.

2. Напечатать все слова, отличные от последнего слова, в которые входят те же гласные буквы, что и в первое слово.

3. Напечатать все слова, отличные от последнего слова, удаляя все согласные буквы, которые уже встречались раньше.

спс заранее.

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

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

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

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

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

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

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

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

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

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

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



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