HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

хелп :) (сессия мать ее.. )
  #1  
Старый 27.05.2009, 22:04
imb
Новичок
Регистрация: 26.03.2009
Сообщений: 5
С нами: 9014652

Репутация: 0
Unhappy хелп :) (сессия мать ее.. )

Фирма XYZ по хранению и сбыту бытовых инструментов и приспособлений получает грузы с оборудованием по различным ценам. Фирма затем продает их с 20% надбавкой, причем товары полученные позднее продаются в первую очередь. Напишите программу считывающую записи о торговых операциях двух типов: операции по закупке и операции по продаже. Запись о продаже содержит префикс "S" и количество товара, а также стоимость данной партии. Запись о покупке содержит префикс "R", кол-во товара, стоимость одного изделия и общую стоимость всей партии.После считывания записи о покупке напечатайте ее. после считывания записи по продаже напечатайте ее и сообщение о цене, по которой были проданы изделия.
Например если фирмой были проданы 200 ед. оборудования в которые входили 50 ед с закупочной ценой 1.25 долл, 100 ед с 1.1 долл и 50 ед с 1долл то напечатется:
ФИРМА XYZ ПРОДАЛА 200 ИЗДЕЛИЙ
50 штук по 1.50 долл каждый на сумму: 75.00
100 штук по 1.32 долл каждый на сумму: 132.00
50 штук по 1.20 долл каждый на сумму: 60.00
ВСЕГО ПРОДАНО НА СУММУ: 267.00

если на складе данное изделие отсутсвует нужное кол-во то продайте имеющиеся а затем напечатайте
ОСТАЛЬНОЙ ЧАСТИ ИЗДЕЛИЯ ХХХ НЕТ НА СКЛАДЕ

з.ы. тока писать надо на паскале(ну или делфи в консольном режиме) а не на бейсике..

з.ы. бонусом сделавшему дам аську 6знаК(xyzab) )
 
Ответить с цитированием

  #2  
Старый 27.05.2009, 22:55
Agregat
Новичок
Регистрация: 15.05.2009
Сообщений: 11
С нами: 8942183

Репутация: 0
По умолчанию

Сегодня, 20:17
Забыл сказать - язык C/C++
 
Ответить с цитированием

  #3  
Старый 28.05.2009, 13:15
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
С нами: 10216668

Репутация: 930


По умолчанию

Agregat, stream.ifolder.ru/12341557

Переделаешь под себя немного. Писал в редакторе, не компилил, поэтому возможны ошибки кое-где. Надеюсь поможет.
Пасс в ПМ
 
Ответить с цитированием

  #4  
Старый 29.05.2009, 07:55
Validol
Участник форума
Регистрация: 15.12.2006
Сообщений: 212
С нами: 10213522

Репутация: 144
По умолчанию

Использование структур.
Цитата:
Сформировать массив, содержащий сведения о том, какие из пяти предлагаемых дисциплин по выбору желает изучать студент. Комбинированный тип содержит поля: фамилия студента, индекс группы, пять дисциплин, средний балл успеваемости. Выбираемая дисциплина отмечается символом 1, иначе - пробелом.
Написать программу, которая печатает список студентов, желающих прослушать дисциплину X. Если число желающих превышает 4 человека, то отобрать студентов, имеющих более высокий средний балл успеваемости.
Использование строк.
Цитата:
Дана строка слов, разделенных пробелами и запятыми. Подсчитайте количество подстрок (заключенных между запятыми) в строке. Определите длину самого короткого слова.
С++
Благодарю заранее.
 
Ответить с цитированием

  #5  
Старый 09.06.2009, 08:24
Гипножаб
Новичок
Регистрация: 25.05.2009
Сообщений: 2
С нами: 8929035

Репутация: 0
По умолчанию

Помогите пожалуйста.На С++:
Написать программу работы с базой отдела кадров предприятия. База хранится в текстовом файле, его размер может быть произвольным. Каждая строка файла содержит запись об одном сотруднике. Формат записи: фамилия и инициалы (30 поз., фамилия должна начинаться с первой позиции), год рождения (5 поз.), ок¬лад (10 поз.).
Программа должна обеспечивать:
□ начальное формирование и дополнение базы данных о сотрудниках;
□ корректировку сведений о сотрудниках;
□ поиск сотрудника в базе по фамилии;
□ поиск самого молодого сотрудника;
Для представления базы в ОП использовать класс list, реализующий линейный двусвязный список.

Основная загвоздка именно в реализации класса list, код для создания самой базы данных, поиска в ней и т.д. впринципе есть

Последний раз редактировалось Гипножаб; 09.06.2009 в 08:28..
 
Ответить с цитированием

  #6  
Старый 29.05.2009, 17:00
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
С нами: 10216668

Репутация: 930


По умолчанию

1.

Код:
struct Student {
private :
	string LastName;
	int GroupNum;
	int Point;
	int Subj[5];
public : 
	/*
	 Student();
	
	 Геттеры и сеттеры

	 void SetLastName(string inLastName);
	 void SetGroupNum(int inGroupNum);
	 void SetPoint(int inPoint);
	 void SetSubj(int inSubj[5]);
	 string GetLastName(Student inStudent);
	 int GetGroupNum(Student inStudent);
	 int GetPoint(Student inStudent);
	 int GetSubj(Student inStudent);

	 void display(Student inStudent);
	 */
};

/*
Student::Student() {
	LastName = "";
	GroupNum = 100;
	Point = 0;
	Subj[5] = {0, 0, 0, 0, 0};
}
*/

/* Отображение информации о студенте

void display(Student inStudent) {
	cout << inStudent.GetLastName() << " " <<
		    inStudent.GetGroupNum() << endl;
}
*/


int main () {

	// Получаем или заводим данные о студентах (массив структур) Student Students[N]
	// Получаем дисциплину для выбора студентов (у нее есть номер, которому соответствует 
	//                                           позиция в Subj[5]) пусть это номер p 
	// Заводим новый массив пустой массив студентов. Student StudentsOk[N]
	// Для студентов с нужной нам дисциплиной.

	int k = 0;
	for (int i=0; N; i++) { // Где N - количество студентов 
		if (Students[i].GetSubj[p]())
			StudentsOk[k] = Students[i];

		if (k > 3) { // Если студентов больше 4, сортируем массив подходящих студентов
				Student temp;
			for (int j=0; N-1; j++) {
				for (i=0;N-1;i++) {
					if (StudentsOk[i].GetPoint()> StudentsOk[i+1].GetPoint()) {
						temp = StudentsOk[i];
						StudentsOk[i] = StudentsOk[i+1];
						StudentsOk[i+1] = temp;
					}}}
			for (i=0; 4; i++) 
				StudentsOk[i].display(); 
		}
					// Если их меньше 4, выводим
		else 
			for (i=0; k; i++) 
				StudentsOk[i].display();
2.

Код:
// Наша строка - Str
	
	int p,min=0; 
	int k=0; // С его помощью посчитаем количесвто подстрок
	int Min[strle(Str)]={0}; // С его - самое короткое слово
	
for (int i=0; strlen(Str); i++) {
	if (s[i]!=',') {
		if (s[i]!=' ') 
			Min[p]++; 
		else p++ 
		} 
	else k++; }
	
	for (i=0; p; i++) 
		if (Min[i]<min) min=Min[i];
	
		// Осталось только рассмотреть крайнии случаи, когда запятые по краям
	
		cout << "Количество подстрок: " << k+1 << endl; 
		cout << "Длина самого короткого слова: " << min;
Писал прям здесь, поэтому криво, но думаю, что главное идея, остальное сам добавишь.

Последний раз редактировалось Fata1ex; 29.05.2009 в 20:34..
 
Ответить с цитированием

  #7  
Старый 30.05.2009, 07:13
megapr3v3d
Познающий
Регистрация: 01.10.2007
Сообщений: 54
С нами: 9795147

Репутация: 2
По умолчанию

Помогите составить блок-схемы для подпрограмм - Метод Дихотомия и Метод Трапеций

Цитата:

#define _USE_MATH_DEFINES
#include <cmath>
#include <iostream>
#include <math.h>
#include <fstream>
using namespace std;
const double A = 0.7; //константы, даны по условию задачи
const double B = 0.3;
const double bm_step = 0.001; //шаг
double bm;
double F(double y) //подынтегральная функция
{
return sqrt(fabs(A*exp(-(y*y)) + B*exp(-(y/2)) - bm));
}


//
//
//Вычисление интеграла МЕТОДОМ ТРАПЕЦИЙ
//
//
//



double trap(double a, double b, int N)
{
double h = (b - a)/N;
double tmpA, tmpB;
double s;

tmpA = a;
tmpB = a + h;
s = 0; //обнуляем площадь, для того что бы потом просуммировать

for (int i = 0; i < N; i++) //цикл
{
s = s + (F(tmpA) + F(tmpB))*h/2; //формула для нахождения площади
//ограниченную сверху кривой

tmpA = tmpB;
tmpB = tmpB + h;
}

return s;
}



//Функция для нахождения верхнего предела интегрирования
//
//
//МЕТОД ДИХОТОМИИ
//
//
//

double f (double Ym, double bm) //функция f(y)
{
return (0.7*exp(-(Ym*Ym))+0.3*exp(-(Ym/2))-bm);
}
double Ym(double a, double b, double eps, double bm)
{
double c;
do
{
c=(a+b)/2; //объявляем шаг вычисления
if (f(c,bm)*f(a,bm)<0) b=c; //вызов функции
else a=c; //если f(a)*f(c) > 0
//то к значению a присваиваем значение c
}
while (fabs(a-b)>=eps); //«fabs» - берём модуль разности f(b)-f(a)
//и сравниваем с заданной точностью
return c;
}


int main() //заголовок главной функции
{
ofstream file; //открытие файла, file переменная описанная как ofstream
double V,a,b,eps,epsp; //описание вещественных переменных
int N, N1, m;
bm = 0.05;
cout <<"a="; cin >>a; //задаем левую границу интервала
cout <<"b="; cin >>b; //задаем правую границу интервала
cout <<"eps="; cin >>eps; //задаем точность вычислений
cout <<"epsp="; cin >>epsp;
cout<<"N="; //вывод строки символа N= с помощью cout
cin>>N; //ввод N с помощью cin
cout<<endl;
cout<<"Ym="<<Ym(a,b,eps,0.05)<<endl;
file.open("results.txt"); //открывает файл,
//results –полное имя файла на диске,
//txt- режим работы с открытым файлом


for (m = 0; m < 6; m++) //цикл
{
bm = 0.05; //начальное условие
while (bm <= 0.9) //пока bm меньше
// или равно 0.9 выполняется
{
N1=N+1;
while (fabs(trap(a,b,N)-trap(a,b,N1))>epsp)
{
N1=N1*2;
}


V = (m*M_PI + 3*M_PI/4)/trap(0, Ym(a,b,eps,bm), N1);
cout<<"m="<<m<<" "<<"bm="<<bm<<" "<<"trap="<<trap(0, Ym(a,b,eps,bm),N1)<<" "<< "V="<<V<<endl;

if (ceil(V) <= 40) //ceil -округляет дробное значение V
//в большую сторону
//и если меньше или равно 40, то выводит //соответствующие значения на экран
{
cout.setf(ios::left); //выводит значения m=
//использовав флаг форматирования //выравнивание по левой границе
cout<<"m="; //функции вывода результатов на экран
cout.width(10);
cout<<m<<"bm=";
cout.width(10); //устанавливает ширину поля вывода,
//10 позиций
cout<<bm<<"V=";
cout.width(10);
cout<<V<<endl;
cout<<Ym(a,b,eps,bm)<<"Ym=";
cout.width(10);
cout<<Ym(a,b,eps,bm)<<endl;
file.setf(ios::left); //записывает значения в файл
file<<"m=";
file.width(10);
file<<m<<"bm=";
file.width(10);
file<<bm<<"V=";
file.width(10);
file<<V<<endl;
}

bm += bm_step; //сложение с присваиванием
}
}

return 0;
}
 
Ответить с цитированием

Срочный хелп
  #8  
Старый 01.06.2009, 00:09
Savedracon
Познающий
Регистрация: 08.11.2008
Сообщений: 43
С нами: 9213775

Репутация: 0
По умолчанию Срочный хелп

Лаба по ассамблеру.
1.Задан массив А из N чисел. Образовать массив В из чисел массива А, делящихся без остатка на 2.
Запутался...
 
Ответить с цитированием

  #9  
Старый 01.06.2009, 01:29
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
С нами: 9023100

Репутация: 395


По умолчанию

TASM lol.asm
Код:
.model small 
.data
A db 1,8,4,3,5,7,9
N equ $-offset A ; razmer massiva A
B db N dup(0)
.code
start: 
mov ax,@data
mov ds,ax


xor si,si
xor di,di
mov bl,2
mov cx,N
cikl:
xor ax,ax
mov al,A[si]
div bl
cmp ah,0
jne dal
mov al,A[si]
mov B[di],al
inc di
dal:
inc si
loop cikl

exit:
mov ax,4c00h
int 21h
думаю можно и красивее )

tasm lol.asm
tlink lol.obj
debug lol.exe
-u (смотришь где находится mov ax,4c00h у меня 0027)
-g CS:0027
-d DS:0000

смотришь дамп ищещь там 01 08 ... 09 и сразу за ними будут 08 04 00 ... в случае правильного результата )) а они там будут яж проверял

Последний раз редактировалось Gar|k; 01.06.2009 в 01:33..
 
Ответить с цитированием

  #10  
Старый 02.06.2009, 16:10
Feonor
Участник форума
Регистрация: 23.07.2008
Сообщений: 202
С нами: 9369202

Репутация: 122
По умолчанию

Цитата:
Сообщение от SHAXID  
Код HTML:
program tr_s;    uses crt,graph;    var    a,b:real; { Границы отрезка }    r,r2:real; { Предыдущее и текущее приближенные значения интеграла }    n:integer; { Счетчик }    { Интегрируемая функция }    function f(x:real):real;    begin    f:=1/(x*ln(x)*0.43429);    end;    { Метод трапеций }    function trap(a,b:real;n:integer):real;    var    s:real; { Полученная сумма }    h:real; { Шаг }    m:integer; { Счетчик }    begin    h:=(b-a)/(n-1); { Определяется шаг }    s:=(f(a)+f(b))/2; { Начальное значение суммы }    for m:=1 to n-2 do s:=s+f(a+m*h); { Суммирование остальных элементов }    trap:=s*h; { Возвращается значение интеграла }    end;    { Метод Симпсона }    function simpson(a,b:real;n:integer):real;    var    s:real; { Сумма }    h:real; { Шаг }    m:integer; { Счетчик }    mn:integer; { Очередной множитель }    begin    h:=(b-a)/(n-1); { Рассчитывается шаг }    s:=f(a)+f(b); { Начальное значение шага }    mn:=4; { Первый множитель - 4 }    { Суммирование остальных элементов }    for m:=1 to n-2 do begin    s:=s+mn*f(a+h*m);    if (mn=4) then mn:=2 else mn:=4;{Изменение множителя 2<>4 }    end;    simpson:=s*h/3; { Возвращается вычисленное значение }    end;    { Процедура вычисления порядка числа }    procedure norm(a:real);    var n:real;    begin    { Если число слишком мало - возвращается ноль }    if (a<0.00001) then n:=0    else begin    { Если число меньше единицы }    if (a<1) then begin    n:=1;    repeat    a:=a*10;    n:=n/10;    until (trunc(a)<>0);    end else begin    { Если число больше единицы }    n:=1;    repeat    a:=a/10;    n:=n*10;    until (trunc(a)=0);    end;    end;    a:=n;    end;    { Построение графика функции }    procedure out_grp(xmin,xmax,ymin,ymax:real);    var    drv,mode:integer;    mx,my:real; { Масштабы по осям }    xx,yy:real; { Текущие координаты }    sx:real; { Шаг по оси X }    dltx,dlty:integer;{ Приращение на графике при смещении графика }    s:string; { Строка }    begin    { Инициализация графики }    drv:=VGA;    mode:=VGAHi;    initgraph(drv,mode,'');    { Выяснение порядков минимумов и максимумов }    norm(xmax);    norm(ymax);    norm(ymin);ymin:=ymin/10;    norm(xmin);ymin:=ymin/10;    if (xmin/xmax)>0.01 then dltx:=20 else dltx:=0;    if (ymin/ymax)>0.01 then dlty:=20 else dlty:=0;    { Расчет масштабов }    mx:=500/(xmax-xmin);    my:=400/(ymax-ymin);    { Расчет приращение по X }    sx:=(xmax-xmin)/550;    { Вывод системы координат  }    settextjustify(1,1);    xx:=xmin;    repeat    setcolor(1);    line(trunc(40+mx*(xx-xmin)+dltx),20,trunc(40+mx*(xx-xmin)+dltx),469);    str(xx:4:2,s);    setcolor(15);    outtextxy(trunc(40+mx*(xx-xmin)+dltx),475,s);    xx:=xx+50*sx;    until (xx>(xmax+50*sx));    yy:=ymin+(ymax-ymin)/10;    repeat    setcolor(1);    line(41,trunc(470-my*(yy-ymin)-dlty),630,trunc(470-my*(yy-ymin)-dlty));    str(yy:4:2,s);    setcolor(15);    outtextxy(20,trunc(470-my*(yy-ymin)-dlty),s);    yy:=yy+(ymax-ymin)/10;    until (yy>(ymax+(ymax-ymin)/10));    line(40,0,40,480);    line(0,470,640,470);    line(40,0,38,10);    line(40,0,42,10);    line(640,470,630,472);    line(640,470,630,468);    { Вывод графика }    xx:=xmin;    repeat    yy:=f(xx);    putpixel(trunc(40+mx*(xx-xmin)+dltx),trunc(470-my*(yy-ymin)-dlty),7);    xx:=xx+sx;    until (xx>xmax);    outtextxy(300,10,' Press ESC to continue ');    repeat until (readkey=#27);    closegraph;    end;    { Основная программа }    begin    { Ввод границ отрезков }    clrscr;    write(' Vvedite A,B: ');    readln(a,b);    { Выводится график функции }    out_grp(a,b,f(b),f(a));    { Вычисляется интеграл по методу трапеции }    n:=3;    r:=trap(a,b,n); { Начальное значение }    repeat    r2:=r; { Запоминается предыдущее значение }    n:=n+2; { Увеличивается количество шагов }    r:=trap(a,b,n); { Рассчитывается новое значение }    until (abs(r-r2)<0.001);{ Повторяется до достижения необходимой точности }    { Вывод результатов }    writeln(' Rezultat po metodu trapeciy raven: ',r:6:3);    writeln(' dlya polucheniya neobhodimoy tochnosti interval byl razbit na ');    writeln(n,' otrezkov ');    { Вычисляется интеграл по методу Симпсона }    n:=3;    r:=simpson(a,b,n); { Начальное значение }    repeat    r2:=r; { Запоминается предыдущее значение }    n:=n+2; { Увеличивается количество шагов }    r:=simpson(a,b,n); { Рассчитывается новое значение }    until (abs(r-r2)<0.001);{ Повторяется до достижения необходимой точности }    { Вывод результатов }    writeln;    writeln(' Rezultat po metodu Simpsona raven: ',r:6:3);    writeln(' dlya polucheniya neobhodimoy tochnosti interval byl razbit na ');    writeln(n,' otrezkov ');      end.
какой изврат в щелку писать ппц))) +1
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости. Обсуждения. 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.