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

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


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

Всем Привте Памагиет пажалусто с джавай увы незнаю а здача 19 числа :D((

Задание :

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

Ват такая фигнея ;) и это нао на джаве

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

Deska

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

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

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

Люди, срочно нужна помощь в Turbo Pascal. Есть программа, готовая, но возникает проблема с удалением лишнего элемента массива. Вот условие:

Дан массив a[1..n] и число b. Переставить числа так, чтобы сначала шли элементы меньше a, затем равные a, а потом большие a. Удалить из массива все элементы равные b и a.

А вот что пока получилось:

PROGRAM BIX;

VAR

I,N,B:INTEGER;

G:REAL;

X:ARRAY[1..100] OF REAL;

BEGIN

WRITELN ('INPUT N');

READ (N);

WRITELN('INPUT B');

READ (B);

FOR I:=1 TO N DO

BEGIN

WRITELN ('INPUT X[',I:2,']');

READ (X)

END;

FOR I:=1 TO B DO

BEGIN

IF G<X THEN G:=X;

WRITELN('G=',G:3:1)

END;

FOR I:=B TO N DO

BEGIN

IF X>X THEN G:=X;

WRITELN('G=',G:3:1);

END;

END.

Основная пробема - как удалить элемент из списка. Помогите пожалуйста, очень надо!

Заранее Вам благодарен.

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

helpboy:

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

Для решения задачи ИМХО самое простое - воспользоваться вспомогательным массивом и перетаскивать туда все, что требуется по условию.

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

Deska

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

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

соабщение это какойта сигнал;

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

вроде так

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

Уже не спешу, тем не менее с прогой проблемка. Дело в том, что в программировании у меня выходит так, что исходники схожих программ подгоняю под себя. Вот и получаются "готовые", как верно сказал Тролль, программы. Пока у меня всё тот же вопрос - как сделать эту задачу в Turbo Pascal?

Появилась ещё такая ботва, тот же Pascal:

Вычислить

y=x^n +x^(n-1)+...+x+1+x^(-1)+...

с точностью до x^(-6), при x изменяющимся от x0 до xk с шагом dx. Подсчитать среднее геометрическое положительных y и среднее арифметическое отрицательных y.

Тут проблемы следующие:

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

2. В Pascal работа со степенью вообще одна сплошная проблема

Если я правильно понял условие, то степень будет уменьшаться на еденицу от n до -6, x же изменяется от x0 до xk с шагом dx. Помогите, пожалуйста!

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

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

соабщение это какойта сигнал;

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

вроде так

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

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

На всякий случай повторюсь, напишу оба условия задачи в одном сообщении. Язык Turbo Pascal, помогите пожалуйста.

1. Дан массив a[1..n] и число b. Переставить числа так, чтобы сначала шли элементы меньше a, затем равные a, а потом большие a. Удалить из массива все элементы равные b и a.

2. Вычислить

y=x^n +x^(n-1)+...+x+1+x^(-1)+...

с точностью до x^(-6), при x изменяющимся от x0 до xk с шагом dx. Подсчитать среднее геометрическое положительных y и среднее арифметическое отрицательных y.

p.s. Нашёл бы этот форум раньше и сэкономил бы время на лабораторных, сейчас бы курсовую сам писал. Это я к тому, что мои лабораторные задачи здесь уже были! :cool: Извиняюсь, если оффтоп.

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

helpboy:

1)

var a,c:array[1..100]of real; i,j,n,b:integer; d:real;

begin

// тут должен быть ввод n и b

// тут должен быть ввод массива a

j:=0; d:=a;

for i:=1 to n do if a<d then begin inc(j); c[j]:=a end;

for i:=1 to n do if a=d then begin inc(j); c[j]:=a end;

for i:=1 to n do if a>d then begin inc(j); c[j]:=a end;

a:=c;

// тут должен быть вывод массива a

j:=0; for i:=1 to n do if (a<>d)and(a<>b) then begin inc(j); a[j]:=c end;

// тут должен быть вывод массива a длиной j

ReadLn

end.

2)

var xo,xk,x,dx,y,g,a:real; i,j,p,o,n:integer;

begin

// тут должен быть ввод xo, xk, dx, n

a:=0; g:=0; j:=0; p:=0; o:=0; x:=xo;

repeat

y:=0; for i:=-6 to n do y:=y+exp(i*ln(x));

// тут должен быть вывод x и y

a:=a+y; g:=g+ln(y); inc(j);

if y>0 then inc(p); id y<0 then inc(o); x:=x+dx;

until x>xk+dx/2;

if o<>0 then

begin a:=a/o;

// тут должен быть вывод a

end;

if p<>0 then

begin

g:=exp(g/p);

// тут должен быть вывод g

end;

ReadLn

end.

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

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

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

фигова :blink: лекцый небыло заочь :blink: и методу недавал :rolleyes:

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

Пожалуйста, помогите с решением задач.

1. Дан массив чисел размерностью 10 элементов. Написать функцию, которая сортирует массив по возрастанию или по убыванию, в зависимости от третьего параметра функции. Если он равен 1, сортировка идет по убыванию, если 0, то по возрастанию. Первые 2 параметра функции - это массив и его размер, третий параметр по умолчанию равен 1.

2. Дан массив случайных чисел в диапазоне от -20 до +20. Необходимо найти позиции крайних отрицательных элементов (самого левого отрицательного элемента и самого правого отрицательного элемента) и отсортировать элементы, находящиеся между ними.

3. Дан массив из 20 целых чисел со значениями от 1 до 20.

Необходимо:

написать функцию, разбрасывающую элементы массива произвольным образом;

создать случайное число из того же диапазона и найти позицию этого случайного числа в массиве;

отсортировать элементы массива, находящиеся слева от найденной позиции по убыванию, а элементы массива, находящиеся справа от найденной позиции по возрастанию.

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

Charlie Rat:

1.

#include <iostream.h>using namespace std;const int n=10;void sort1(float a[],int k,int r=1){int i,j; float t;if(r==0)for(i=0;i<k;i++)for(j=0;j<k-i-1;j++)  if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}if(r==1)for(i=0;i<k;i++)for(j=0;j<k-i-1;j++)  if(a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}main(){float b[n]; int i,r;for(i=0;i<n;i++){cout<<"b["<<i<<"]=";cin>>b[i];}cout<<endl<<"r=";cin>>r;sort1(b,n,r);for(i=0;i<n;i++)cout<<endl<<"b["<<i<<"]="<<b[i]; return 0;}

2.

#include <iostream.h>using namespace std;const int l=100;void sort2(float a[],int d1,int d2){int i,j;float t;for(i=d1;i<=d2;i++)for(j=d1;j<d2+d1-i;j++) if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}main(){float b[l]; int i,n,d1,d2;cout<<endl<<"n=";cin>>n;for(i=0;i<n;i++){cout<<"b["<<i<<"]=";cin>>b[i];}for(i=0;i<n;i++)if(b[i]<0)d2=i;for(i=n-1;i>=0;i--)if(b[i]<0)d1=i;sort2(b,d1+1,d2-1);for(i=0;i<n;i++)cout<<endl<<"b["<<i<<"]="<<b[i]; return 0;} 

3.

#include <iostream.h>#include <stdlib.h> #include <time.h> using namespace std;const int n=20;void sort3(int a[],int d1,int d2){int i,j;int t;for(i=d1;i<=d2;i++)for(j=d1;j<d2+d1-i;j++) if(a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}void sort4(int a[],int d1,int d2){int i,j;int t;for(i=d1;i<=d2;i++)for(j=d1;j<d2+d1-i;j++) if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}void mixture(int a[]) //algorithm Fisher-Yates{int j,k,r; j=n-1;do{k=rand()%n;r=a[j];a[j]=a[k];a[k]=r;}while(j--);}main(){int b[n],p,i,d; for(i=0;i<n;i++)b[i]=i+1; srand(time(NULL)); mixture(b);p=rand()%n+1; cout<<endl<<"p="<<p;for(i=0;i<n;i++)if(b[i]==p)d=i;sort3(b,0,d-1); sort4(b,d+1,n-1);for(i=0;i<n;i++)cout<<endl<<"b["<<i<<"]="<<b[i]; return 0;} 
Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Помогите, пожалуста, с задачками по С++, тема ФУНКЦИИ.

Вот первая

Написать функцию, которая получает в качестве аргументов целое положительное число и систему счисления, в которую это число должно переводится (системы счисления от 2 до 36). Например, при переводе числа 27 в систему счисления 16 должно получиться 1B; 13 в 5-ю - 23; 35 в 18-ю - 1H.

Вот вторая

Игра «кубики». Условие: имеется два игральных кубика со значениями от 1 до 6. Игра происходит с компьютером, кубики бросаются поочередно. Побеждает тот, у кого сумма выпавших очков по итогам пяти бросков больше. Предусмотрите возможность получения первого хода человеком или компьютером. Кубики отображаются с помощью символов. В конце игры необходимо выводить среднюю сумму по броскам для обоих участников.

Вот третья

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

Заранее спасибо за помощь.

1)

#include <iostream.h>#include <stdio.h>#include <string.h>using namespace std;main(){long a; short b; string s="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",r="";cout<<"Number=";cin>>a;cout<<"Base=";cin>>b;do{r=s[a%b]+r;a/=b;}while(a);cout<<r<<endl;getchar();getchar();}

2)

В кости не играю :cool: . Если серьезнее, там почти всё - оформление, вопросы и ответы, совершенно неинтересно. Как брать случайные числа в C++: p=rand()%6+1; выдаст случайное число от 1 до 6, чтобы числа при каждом запуске программы были разные, в начале ее надо выполнить установку начального значения генератора случайных сисел по времени оператором srand(time(NULL)); , а для этого надо включить в программу заголовочный файл строкой #include <time.h>

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

3)

#include <stdio.h>#include <math.h>#include <iostream.h>#include <iomanip.h>main(){double a,b; int k; cout<<"Number=";cin>>a;cout<<"Fixed=";cin>>k;b=pow(10.,k); a=floor(b*a+.5)/b;cout.precision(16); cout<<endl<<a<<endl;getchar();getchar();}
Ссылка на комментарий
Поделиться на другие сайты

Всем привет!

Мне нужна помощь!

Нужно написать програмку на Паскале: Прямоугольник вращаеться вокруг своего центра и при этом двигаеться по синусоиде.

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

Кто может помогите! Плыыыыыыыыз! :)

Может у кого-то есть хотя бы типа такой готовая?

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

Помогите решить задачу.

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

Условие: Необходимо решить задачу методом рекурсии. За один ход можно переложить только один круг. Нельзя ложить больший круг на меньший. В результате должно быть переложены все круги с первого стержня на третий.

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

Charlie Rat:

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

С меньшим числом дисков это одна из известнейших игр в мире. Только Яндекс приносит ссылки на 107508 страниц, где упоминается эта игра. Называется она Ханойские башни. Набери в Яндексе эти магические слова ;) и слова рекурсия и Pascal - и найдешь всё, что тебе нужно :) .

P.S. Да, не обратил внимания. Во первых, условие сформулировано неправильно. Если на всех трех стержнях круги лежат указанным в условии образом, монахи остались без дела - задача с самого начала невыполнима :) .

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

Кроме того, предлагается решить задачу именно с 64 дисками. Стоит ли начинать решение, если на него, во всяком случае на моем компьютере, предлагаемым методом уйдет несколько миллионов лет? :)

Кстати, есть фантастический рассказ на эту тему. Там, по местным законам, приговоренному к смерти разрешалось перед смертью сыграть в одну игру по его выбору. Смертник выбрал "Ханойские башни"... :)

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

Приветствую всех.

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

Условие задачи:

Даны два текстовых файла - один на русском языке в "Блокноте", другой - зашифрованный, тоже в "Блокноте".

Требуется методом частотных характеристик посчитать количество букв в первом файле, и во втором(символов). Потом подменить второй массив на первый.

Т.е. посчитать количество буквы "а" на 1000 символов, буквы "б", и т.д.

Вот что сам написал:

Program crypting;const n=100;Type alph=record   symb:char;   qua:longint;   end;   crypt=array[1..n] of alph;vaR i:integer;   f1,f2:text;   s:char;   st:string;   cr1,cr2:crypt;Procedure Count(var f:text; var  cr:crypt);var er:boolean;beginWhile not eof(f) dowhile not eoln(f) dobeginread(f,s);If s=' ' then inc(cr[n].qua) else{case symbol of',' , '.' , ')' , '(' , '"' , '-' , '?' , '!':er:=true;}If (s=',')or (s='.')or (s=')')or (s='(')or (s='"')or (s='-')or (s='?')or (s='!') then inc(cr[n-1].qua)else begini:=1;repeat;If cr[i].symb=' ' then cr[i].symb:=s;If s=cr[i].symb then inc(cr[i].qua);inc(i);until (cr[i-1].symb=s)or(i=n);writeln(cr[i-1].symb,'   ',cr[i-1].qua);readln;end end end;Procedure Sort(var cr:crypt);beginend;beginAssign(f1,'out.txt');Reset(f1);Count(f1,cr1);Assign(f2,'in.txt');Reset(f2);Count(f2,cr2);Close(f1);Close(f2);readln;end.

Заранее спасибо за помощь.

P.S.

Желательно написать программу без всяких обращений к оперативной памяти, unit'am и проч.

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

Антохен:

Заглавные буквы считаются за прописные
Развеселил... :doh:

"Заглавная буква (книжн.) - то же, что большая или прописная буква"

(Толковый словарь русского языка Ушакова)

Впрочем,

Желательно написать программу без всяких обращений к оперативной памяти
- тоже неплохо. Это эквивалентно тому, чтобы написать "выполнялась без компьютера". Любая программа хранится в оперативной памяти, а ее выполнение связано с обращениями к оперативной памяти.

А по сути дела - условие непонятно. Во втором файле текст - на русском языке? Почему в первом файле упоминаются буквы, а во втором - символы? Что значит: подменить первый массив на второй? Это мы запросто: A:=B;

Выводить в задаче, что, ничего не надо? Тогда программа begin end. будет ничем не хуже...

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

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

Я имею в виду, чтобы не было всяких строчек типа $B800 что - то там.

А по сути дела - условие непонятно. Во втором файле текст - на русском языке? Почему в первом файле упоминаются буквы, а во втором - символы? Что значит: подменить первый массив на второй? Это мы запросто: A:=B;

Выводить в задаче, что, ничего не надо? Тогда программа begin end. будет ничем не хуже...

Дан текст на русском языке:

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

Справа из леса вышли двое, ступили на обочину и остановились, глядя в мою сторону. Один из них поднял руку. Я сбросил газ, их рассматривая. Это были, как мне показалось, охотники, молодые люди, может быть, немного старше меня. Их лица понравились мне, и я остановился.

Дан текст на нерусском языке:

<{< } ><~$.

Ш^\$$, ><>}, >}> {\}>#Т $} $Ш{}#\ #

$$$ Ш}$^>#, ## ^$<{\$$ТТ $\<^\^{\$$

}# Ш, %\{Т #$\{\} > #$#, ^^\$$} >

~\^\>< # $\>{Х #^$Х. Т ї ~ШХ ><~}, $<$,

}> >}}, #\ , ~\ ><~}, - $> # ^\{@\$$

{ї}$#^}$$< $\{^$< #\<. $<$ <\ Х# ##, %

>{}$\ \{\, {}}. < <{} $\ ШХ $\{^$ #\Х ^

ШХ~$ Х\ ^}, # $ $\ <\ Х#. \ Ш\\ $ $\

<\ {}}. $ > ^%{#$#}, }%#$} # \^^}. #

\ $\ \$\\ \< } ><~$.

Это только фрагменты. На самом деле там 40 Кб текста в Блокноте.

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

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

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

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

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

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

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

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

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

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

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

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



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