
05.06.2010, 14:28
|
|
Новичок
Регистрация: 02.01.2010
Сообщений: 26
С нами:
8608173
Репутация:
15
|
|
Сообщение от Lerr777
народ,кто нибудь может помочь с постом#2792 и#2793.С меня++++++
Задача про студентов . . .
PHP код:
#include <iostream>
#include <string>
using namespace std;
const int C = 3;
struct Student{
string _name;
int _group;
double _mark[C];
};
int Start();
void CreateBasa(Student *&Basa, int N);
template <typename T> void Sort(Student *&Basa, int N, T symbol);
bool cmp(Student first, Student last, char c);
bool cmp(Student first, Student last, int c);
bool cmp(Student first, Student last, double c);
int Print(Student *Basa, int N);
int PrintBasa(Student *Basa, int N);
int main(){
setlocale(LC_CTYPE,".1251");
Start();
return 0;
}
//-----------------------
int Start(){
int N = 0;
cout << "Сколько студентов в базе: ";
cin >> N;
Student *Basa = new Student[N];
CreateBasa(Basa,N);
Sort(Basa,N,1.0);
PrintBasa(Basa,N);
Print(Basa,N);
delete[] Basa;
return 0;
}
//------------------------
void CreateBasa(Student *&Basa, int N){
for(int i = 0; i < N; i++){
cout << "Имя студента: ";
cin >> Basa[i]._name;
cout << "Номер группы: ";
cin >> Basa[i]._group;
cout << "Оценки по предметам: ";
for(int j = 0; j < C; j++){
cout << "Оценка по предмету: ";
cin >> Basa[i]._mark[j];
}
}
}
//------------------------
template <typename T>
void Sort(Student *&Basa, int N, T symbol){
bool fl;
do{
fl = false;
for(int i = 0; i < N-1; i++){
if( cmp(Basa[i],Basa[i+1],symbol) ){
Student tmp = Basa[i];
Basa[i] = Basa[i+1];
Basa[i+1] = tmp;
fl = true;
}
}
}while(fl);
}
//---------------------
bool cmp(Student first, Student last, char c){
if(first._name > first._name){
return true;
}
return false;
}
//---------------------
bool cmp(Student first, Student last, int c){
if(first._group> last._group){
return true;
}
return false;
}
//---------------------
bool cmp(Student first, Student last, double c){
double FRes = 0.0, LRes = 0.0;
for(int i = 0; i < C; i++){
FRes += first._mark[i];
LRes += last._mark[i];
}
if(FRes > LRes){
return true;
}
return false;
}
//---------------
int Print(Student *Basa, int N){
double Good = 4.0;
bool flag = true, fl = true;
for(int i = 0; i < N; i++){
for(int j = 0; j < C; j++){
if(Basa[i]._mark[j] < Good){
flag = false; break;
}
}
if(flag){
cout << Basa[i]._name << " " << Basa[i]._group << endl;
fl = false;
}
flag = true;
}
if(fl){ cout << "\"Хороших\" студентов нет" << endl; }
return 0;
}
//-----------------
int PrintBasa(Student *Basa, int N){
for(int i = 0; i < N; i++){
cout << Basa[i]._name << " " << Basa[i]._group << " ";
for(int j = 0; j < C; j++)
cout << Basa[i]._mark[j] << " ";
cout << endl;
}
return 0;
}
Сортировку "Пузырек" можешь заменить на более быструю сортировку, писал просто для примера или задачу надо было писать на классах?
|
|
|

04.06.2010, 02:39
|
|
Познающий
Регистрация: 11.03.2009
Сообщений: 45
С нами:
9036118
Репутация:
1
|
|
Тут решают задачки на Mathlabe?
|
|
|

04.06.2010, 14:37
|
|
Участник форума
Регистрация: 13.06.2007
Сообщений: 113
С нами:
9953844
Репутация:
526
|
|
прога (на C++):
Код:
#include "D:\Ñòóäåíò\kl\êóðñà÷\laba 111.h"
//#use delay (clock=20000000)
void main(){
int val,n,m;
int16 t=256;
int16 b=1;
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_adc(ADC_CLOCK_DIV_32);
setup_adc_ports(ALL_ANALOG);
do
{
set_adc_channel(1);
delay_ms(10);
val= read_adc();
while(n<17)
{
output_b(b<<n);
output_d(b<<n-8);
m=5*val;
delay_ms(m);
n++;
}
n=0;
}
while (true);
}
Помогите с блок-схемой
|
|
|

09.06.2010, 11:40
|
|
Новичок
Регистрация: 03.01.2010
Сообщений: 3
С нами:
8607076
Репутация:
1
|
|
Ребята, нужна срочно помощь, нужно решить задачу в делфи с формами:
1)Дан массив A размера N. Вывести его элементы в следующем порядке:
A1, A2, AN, AN–1, A3, A4, AN–2, AN–3, … .
2)Дан массив размера N. Найти номера тех элементов массива, которые больше своего правого соседа, и количество таких элементов. Найденные номера выводить в порядке их возрастания.
3)Дана матрица размера M х N. Найти номер ее строки с наибольшей суммой элементов и вывести данный номер, а также значение наибольшей суммы.
4)Дана матрица размера M х N. Найти количество ее строк, элементы которых упорядочены по возрастанию.
Отблагодарю, если что пишите в ICQ-386892 или сдесь
|
|
|

09.06.2010, 13:53
|
|
Новичок
Регистрация: 06.06.2010
Сообщений: 4
С нами:
8385426
Репутация:
0
|
|
Помощь в решении задачи
Задача (C++):
Гаражная стоянка имеет одну стояночную полосу, причем единственный въезд и единственный выезд находятся в одном конце полосы. Если владелец автомашины приходит забрать свой автомобиль, который не является ближайшим к выходу, то все автомашины, загораживающие проезд, удаляются, машина данного владельца выводится со стоянки, а другие машины возвращаются на стоянку в исходном порядке. Написать программу, которая моделирует процесс прибытия и отъезда машин. Прибытие или отъезд автомашины задается командной строкой, которая содержит признак прибытия или отъезда и номер машины. Программа должна выводить сообщение при прибытии или выезде любой машины. При выезде автомашины со стоянки сообщение должно содержать число случаев, когда машина удалялась со стоянки для обеспечения выезда других автомобилей.
Нужно решить в короткие сроки (до завтра). Прошу помочь с решением.
З.Ы. естественно, за определенную плату
Последний раз редактировалось HenryL; 09.06.2010 в 14:02..
|
|
|

09.06.2010, 15:00
|
|
Новичок
Регистрация: 02.01.2010
Сообщений: 26
С нами:
8608173
Репутация:
15
|
|
классическая задача для работы со стеком, а в чем сложность задачи?
|
|
|

09.06.2010, 15:02
|
|
Новичок
Регистрация: 06.06.2010
Сообщений: 4
С нами:
8385426
Репутация:
0
|
|
Сообщение от XimiK69
классическая задача для работы со стеком, а в чем сложность задачи?
да, задача вполне тривиальна, но сжатые сроки и некоторые другие аспекты мешают мне справится с ней самому...
|
|
|

09.06.2010, 15:45
|
|
Новичок
Регистрация: 02.01.2010
Сообщений: 26
С нами:
8608173
Репутация:
15
|
|
Пример программы для выезда машины из гаража
Пусть номер машины - это позиция в стеке.
Код:
#include <iostream>
#include <stack>
using namespace std;
int Start();
void Replace(stack<int>&,int);
int main(){
setlocale(LC_ALL,"Russian");
Start();
return 0;
}
//------- Старт ------/
int Start(){
stack<int> Garage;
int count = 0;
cout << "Сколько машин в гараже: ";
cin >> count;
for(int i = 0; i < count; i++)
Garage.push(0);
int number = 0, menu = 0;
do{
cout << "В гараже " << count << " машин" << endl;
cout << "Номер машины, которая покидает гараж: ";
cin >> number;
if(number >= count){
cout << "Такой машины в гараже нет!" << endl;
}
else{
Replace(Garage,number); count--;
}
cout << "Хотите повторить? ДА - 1" << endl;
cin >> menu;
}while(menu == 1 && number != 0);
return 0;
}
//----------------
void Replace(stack<int> &Garage, int number){
stack<int> tmp;
for(int i = 0; i < number; i++){
tmp.push(Garage.top()+1);
Garage.pop();
}
cout << "Машина удалялась со стоянки " << Garage.top() << " раз" << endl;
Garage.pop();
while( !tmp.empty() ){
Garage.push(tmp.top());
tmp.pop();
}
}
Надеюсь условие задачи понял верно)
|
|
|

09.06.2010, 16:03
|
|
Новичок
Регистрация: 06.06.2010
Сообщений: 4
С нами:
8385426
Репутация:
0
|
|
Сообщение от XimiK69
Надеюсь условие задачи понял верно)
да все верно, огромное спасибо!
но нужно еще заполнение стека, т.е. въезд машин в гараж, чтобы написанные вами функции работали с введенными данными. если не сложно, помогите и с этим
|
|
|

09.06.2010, 20:32
|
|
Новичок
Регистрация: 06.06.2010
Сообщений: 4
С нами:
8385426
Репутация:
0
|
|
помогите дописать оставшуюся часть, времени совсем нет, ничего не успеваю
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|