хелп :) (сессия мать ее.. ) |

27.05.2009, 22:04
|
|
Новичок
Регистрация: 26.03.2009
Сообщений: 5
С нами:
9014652
Репутация:
0
|
|
хелп :) (сессия мать ее.. )
Фирма 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) )
|
|
|

27.05.2009, 22:55
|
|
Новичок
Регистрация: 15.05.2009
Сообщений: 11
С нами:
8942183
Репутация:
0
|
|
Сегодня, 20:17
Забыл сказать - язык C/C++
|
|
|

28.05.2009, 13:15
|
|
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
С нами:
10216668
Репутация:
930
|
|
Agregat, stream.ifolder.ru/12341557
Переделаешь под себя немного. Писал в редакторе, не компилил, поэтому возможны ошибки кое-где. Надеюсь поможет.
Пасс в ПМ
|
|
|

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

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

29.05.2009, 17:00
|
|
Постоянный
Регистрация: 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..
|
|
|

30.05.2009, 07:13
|
|
Познающий
Регистрация: 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;
}
|
|
|

01.06.2009, 00:09
|
|
Познающий
Регистрация: 08.11.2008
Сообщений: 43
С нами:
9213775
Репутация:
0
|
|
Срочный хелп
Лаба по ассамблеру.
1.Задан массив А из N чисел. Образовать массив В из чисел массива А, делящихся без остатка на 2.
Запутался...
|
|
|

01.06.2009, 01:29
|
|
Постоянный
Регистрация: 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..
|
|
|

02.06.2009, 16:10
|
|
Участник форума
Регистрация: 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
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|