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

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


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

Спасибо большое за помощь. Немного переделывал под свой компилятор и лополнительные условия. Так вот:

for(i=1;i<=3;i++){cout<<"Name  of "<<i<<" stydent:		";cin.getline (G.Students[i].Name,29); G.count++;cout<<"\nBirthdate: year (4 digits):	"; cin>>G.Students[i].Year;cout<<"\n		   month (1-2 digits): "; cin>>G.Students[i].Month;cout<<"\n		   day (1-2 digits):   "; cin>>G.Students[i].Day;cout<<"\nPlace of studing:			  ";cin.getline (G.Students[i].PlaceStud,29);

В етом кусочке все время Место учобы проскакивает и ввод начинается опять с имени студента. В чем проблема может быть?

Часть описания класов осталась той же :

class Persone {public: char  Name[30]; int Year,Month,Day;};class Student:public Persone {public: char  PlaceStud[30];};class Group {public: int count; Student Students[40]; void StudSort();};
Ссылка на комментарий
Поделиться на другие сайты

Дальнейшые наблюдения привели к такому заключени - если юзать cin.getline() после cin>> то первый вариант просто пропускается и програма идет дальше. Обьясните пожалуйста почему так

Ну вот, как я понял cin >> оставляет конец строки

в потоке, в результате по getline прилетает пустая строчка

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

Если кто-нить столкнется с такой проблемой - вот решение.

char skip;

//перед getline()

cin>>skip;

cin.putback(skip);

cin.getline();//ваша строка

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

Есть вопрос по использованию компонента TOpenDialog в Delphi 6. Мне нужно получить имя файла от данного компонента (не имя вместе с адресом, а только имя файла). Свойство FileName возвращает имя файла вместе с его адресом. А как сделать так, чтобы получить только само имя файла, без адреса? В VB.net например для этого есть свойство FileTitle, а в Delphi что-то не нашёл ничего подобного.

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

В Delphi тоже есть много функций для работы с именами файлов. Чистое имя файла из строки с путем к файлу извлекает, если не ошибаюсь, функция ExtractFileName. Хотя функцию, извлекающую часть строки после последнего символа \ и самому написать нетрудно.

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

В Delphi тоже есть много функций для работы с именами файлов. Чистое имя файла из строки с путем к файлу извлекает, если не ошибаюсь, функция ExtractFileName. Хотя функцию, извлекающую часть строки после последнего символа \ и самому написать нетрудно.

Спасибо. Попробую. Я просто в Delphi недавно только начал работать. Со строками не особо гибко умею работать.

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

Здраствуйте. Помогите доделать функцию сортировки записей масива в алфавитном порядке за Фамилией.

class Persone {public: char  Name[30]; int Year,Month,Day;};class Student:public Persone {public: char  PlaceStud[30];};class Group {public: int count; Student Students[40];

...

void Group::SortByName(){int i,j,k=0; char flag='1'; Student St;for(i=0;i<count-1;i++)for(j=0;j<count-1;j++){while (flag=='1'){if (Students[j].Name[k]!=Students[j+1].Name[k]){if (Students[j].Name[k]>Students[j+1].Name[k]){St=Students[j]; Students[j]=Students[j+1]; Students[j+1]=St;flag='0';cout<<Students[j].Name[k];}};k++;}}};

переставляет только 0 и 1-ый елементы. Потом цикл прекращается. тоисть если взять 3 записи то сортировка ужене происходит. Голова уже вообще не варит. Надеюсь кто-нить увидит ошибку. Спасибо. :)

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

core:

Так ты же сам себе тут выкопал яму флагом flag разрешения перестановки, который после первой же перестановки элементов сбрасывается и запрещает дальнейшие перестановки элементов.

Конструкция "если не равно то если больше" мне тоже не слишком нравится, но она по крайней мере не портит работу.

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

Тролль:

овв, понял. спасибо. хех, а я и не заметил

Извиняюсь за наглость, а какую конструкцию сортировки ты б предложил? Как мне без скажем того флага выходит из цикла перебора букв, если перестановка произошла?

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

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

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

P.S. Фу ты, не заметил, что ты вместо прямого сравнения имен сначала сортируешь все имена по первой букве, потом по второй, потом по третьей... в итоге должно получаться что-то несообразное. Уж если на то пошло, надо было сначала сортировать по последней букве, потом по предпоследней и т.д. до первой... а вообще это специально для сведения с ума придумано? Я сначала было решил, что ты пытаешься сократить время выполнения сортировки экстренным выходом из цикла, когда уже нечего сортировать, есть такой вариант пузырьковой сортировки, а ты решил создать что-то сильно оригинальное :).

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

Я ведь и сортировал по датам, записанным в виде строк. Если ты хотел сортировать по именам, достаточно было заменить в сортировке слово Birthdate на слово Name.

Кроме того, ты почему-то не хочешь пользоваться стандартным для C++ типом строк string, а хочешь использовать оставшуюся от C возможность работы со строками как с особым видом массивов символов char*. Ну и на здоровье, в C есть специальная библиотека для работы с такими строками, она без изменений перешла в C++ и подключается #include <string.h>. Там есть готовые функции сравнения таких строк strcmp и копирования строк strcpy. Конечно, это не так удобно, как использовать операции > и =, но тоже вполне несложно. А если хочется спуститься до совсем уж примитивного уровня без использования стандартных библиотек функций, то функции сравнения и копирования строк как массивов символов и самому написать легко. Но их надо писать отдельно, а не перепутывать их текст с текстом более высоких уровней программы.

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

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

За это я заплочу через WebMoney.

Кого заинтересовало пишите на blackjoker2@yandex.ru. Подробней по аське поговорим.

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

Есть вопросик. Какой текстовый ти нужно огласить для переменной чтоб в него можна было записать даные с поля. Переношу предыдущую задачу на билдер. Так вот:

пробую

G.Students[j].Surname=Edit1->Text;

не пашет. Вид класа:

class Persone {public: string  Surname,Name,Father; int Year,Month,Day;};class Student:public Persone {public: char  PlaceStud[30];};class Group {public: int count; Student Students[40];
Ссылка на комментарий
Поделиться на другие сайты

Мне нужна помощь с программой...

Програма поворачивает букву "К" которая состоит из букв "к" на 0,90,180,270 градусов.

Надо её слегка передалать:

Надо сделать чтобы сама буква "К" была жолтым цветом.

и надо чтоб поврот буквы на разные градусы производился при нажатии стрелочек на клавеатуре а не цифр 1 2 3 4.

Вопшем программа пиведина ниже.

#include <iostream.h>

#include <conio.h>

const int N=10;

void main()

{

int i,j;

char Matr[N][N];

char choice;

//Input letter in array

for(i=0;i<N;i++)

{

for(j=0;j<N;j++)

{

Matr[j]=' ';

}

}

for(i=0;i<N;i++)

Matr[3]='K';

Matr[0][8]=Matr[9][9]=Matr[8][8]=Matr[7][7]=Matr[6][6]=

Matr[5][5]=Matr[1][7]=Matr[2][6]=Matr[3][5]=Matr[4][4]='K';

////////////////////////////////////

for(i=0;i<N;i++)

{

for(j=0;j<N;j++)

cout<<Matr[j];

cout<<"\n";

}

do

{

cout<<"1 - Turn to 0 degrees\n";

cout<<"2 - Turn to 90 degrees\n";

cout<<"3 - Turn to 180 degrees\n";

cout<<"4 - Turn to 270 degrees\n";

cout<<"0 - exit\n";

choice=getch();

// cin>>choice;

switch(choice)

{

case '1':

clrscr();

for(i=0;i<N;i++)

{

for(j=0;j<N;j++)

cout<<Matr[j];

cout<<"\n";

}

break;

case '2':

clrscr();

for(i=0;i<N;i++)

{

for(j=0;j<N;j++)

cout<<Matr[N-1-j];

cout<<"\n";

}

break;

case '3':

clrscr();

for(i=0;i<N;i++)

{

for(j=0;j<N;j++)

cout<<Matr[N-1-i][N-1-j];

cout<<"\n";

}

break;

case '4':

clrscr();

for(i=0;i<N;i++)

{

for(j=0;j<N;j++)

cout<<Matr[j][N-1-i];

cout<<"\n";

}

break;

}

}while(choice!='0');

}

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

Dr0n4eG:

Переделал твою прогу на стрелки и на желтый цвет. Проверил на Dev-C++.

#include <iostream.h>#include <conio.h>#include <windows.h>const int N=10;int main(){int i,j;char Matr[N][N];char choice;HANDLE hstdo;hstdo = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleTextAttribute (hstdo, FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_INTENSITY);//Input letter in arrayfor(i=0;i<N;i++){for(j=0;j<N;j++){Matr[i][j]=' ';}}for(i=0;i<N;i++)Matr[i][3]='K';Matr[0][8]=Matr[9][9]=Matr[8][8]=Matr[7][7]=Matr[6][6]=Matr[5][5]=Matr[1][7]=Matr[2][6]=Matr[3][5]=Matr[4][4]='K';////////////////////////////////////for(i=0;i<N;i++){for(j=0;j<N;j++)cout<<Matr[i][j];cout<<"\n";}do{cout<<"^ - Turn to 0 degrees\n";cout<<"> - Turn to 90 degrees\n";cout<<"<- Turn to 180 degrees\n";cout<<"v - Turn to 270 degrees\n";cout<<"0 - exit\n";choice=getch(); if (choice=='\224')choice=getch();//system("pause");// cin>>choice;switch(choice){case 'H':system("cls");for(i=0;i<N;i++){for(j=0;j<N;j++)cout<<Matr[i][j];cout<<"\n";}break;case 'M':system("cls");for(i=0;i<N;i++){for(j=0;j<N;j++)cout<<Matr[N-1-j][i];cout<<"\n";}break;case 'K':system("cls");	 for(i=0;i<N;i++){for(j=0;j<N;j++)cout<<Matr[N-1-i][N-1-j];cout<<"\n";}break;case 'P':system("cls");for(i=0;i<N;i++){for(j=0;j<N;j++)cout<<Matr[j][N-1-i];cout<<"\n";}break;}}while(choice!='0');}
Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Тут с ещо 1 программой проблема она поидее должна сортировать матрицу методом быстрой сортировки но при компиляции пишит ошибку :bleh: незнаю как убрать эту ошибку :g:

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <iostream.h>

#define ROWS 4

#define COLS 4

// ========================================

{

printf ("\n");

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

{

for (int j=0; j<COLS; j++)

{

printf ("%5d", matrix [i*COLS+j]);

}

}

//=================================

void exchange_rows (int* row_1, int * row_2)

{

int j, I, c;

for (j=0 j<COLS; j++)

}

c=row_2 [j];

row+2[j]=row_1 [j];

row_1[j]=c;

}

//======================================

//======================================

int main (void)

{

int matrix [ROWS][COLS];

int i, j;

clrscr ();

randomize ();

for (i=0; i<ROWS; i++)

{

for (j=0; j<CALS; j++)

{

matrix [j]=random (11);

}

}

printf ("********Sortirovanie matrici********\n\n");

textcolor (RED);

cprintf ("Matrica do sortirovki: \n");

print_matrix (z matrix [0][0]);

printf("/n");

//-------------------------------------------------------

int k;

textcolor (GREEN);cprintf (Vvedite skolko nado sortirovat matricy);

scanf ("%d", &k);

for (i=0; j<ROWS-i-1; j++)

{

if (matrix [j][0], matrix [j+1][0])

{

exchange_rows (matrix [j]), matrix [j+1]);

}

}

textcolor (RED);

cprintf ("\n\n Otsortirovanaya matrica: /n");

print_matrix (& matrix[0][0]);

//--------------------------------------------

getch ();

return0;

}

Хм проблема с Буквой К у меня на bilder 3.1 она кучу ошибок пишит при компеляции а прогу имена на Builber 3.1 надо сделать :(

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

Я переделал Програмку под себя но непойму что именно в ней отвечает чтоб буква поворачивалась стрелками а не цифрами (((

#include <iostream.h>

#include <conio.h>

const int N=10;

int main()

{

clrscr();

int i,j;

char Matr[N][N];

char choice;

//Input letter in array

for(i=0;i<N;i++)

{

for(j=0;j<N;j++)

{

Matr[j]=' ';

}

}

for(i=0;i<N;i++)

Matr[3]='K';

Matr[0][8]=Matr[9][9]=Matr[8][8]=Matr[7][7]=Matr[6][6]=

Matr[5][5]=Matr[1][7]=Matr[2][6]=Matr[3][5]=Matr[4][4]='K';

////////////////////////////////////

for(i=0;i<N;i++)

{

for(j=0;j<N;j++)

cout<<Matr[j];

cout<<"\n";

}

do

{

textcolor(YELLOW);

textbackground(BLACK);

cout<<"^ - Turn to 0 degrees\n";

cout<<"> - Turn to 90 degrees\n";

cout<<"<- Turn to 180 degrees\n";

cout<<"v - Turn to 270 degrees\n";

cout<<"0 - exit\n";

choice=getch(); if (choice=='\224')choice=getch();

//system("pause");

// cin>>choice;

switch(choice)

{

case 'H':

clrscr();

for(i=0;i<N;i++)

{

for(j=0;j<N;j++)

cout<<Matr[j];

cout<<"\n";

}

break;

case 'M':

clrscr();

for(i=0;i<N;i++)

{

for(j=0;j<N;j++)

cout<<Matr[N-1-j];

cout<<"\n";

}

break;

case 'K':

clrscr();

for(i=0;i<N;i++)

{

for(j=0;j<N;j++)

cout<<Matr[N-1-i][N-1-j];

cout<<"\n";

}

break;

case 'P':

clrscr();

for(i=0;i<N;i++)

{

for(j=0;j<N;j++)

cout<<Matr[j][N-1-i];

cout<<"\n";

}

break;

}

}while(choice!='0');

}

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

Я так понял что отвечает за это буквы К Н Р М но почему эти буквы єто стрелочки непойму (((( :bleh:

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

do{textcolor(YELLOW);textbackground(BLACK);

Ети функции описаны в "iostream.h"?

Лучше будет поставить их перед выполнением цикла.

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

Dr0n4eG:

Я так понял что отвечает за это буквы К Н Р М но почему эти буквы єто стрелочки непойму ((((
На самом деле это младшие байты скэн-кодов клавиш. Проще говоря, драйвер клавиатуры превращает коды специальных клавиш (сюда входят и стрелки) в коды двух следующих друг за другом символов - специального служебного символа, предупреждающего о том, что следующий за ним код буквы - вовсе не код буквы, и этого самого кода. Функция getch() читает оба кода как коды отдельных символов, поэтому я первый символ читаю и выкидываю, а второй сравниваю с кодом подходящего символа. Коды символов K, P и т.д. совпадают с этими кодами служебных клавиш чисто по случайному совпадению. У других служебных клавиш эти коды совпадают с кодами других букв.
Ссылка на комментарий
Поделиться на другие сайты

Я на 36 странице написал: просто надо на завтро это програму поченить :(

Тут с ещо 1 программой проблема она поидее должна сортировать матрицу методом быстрой сортировки но при компиляции пишит ошибку незнаю как убрать эту ошибку

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <iostream.h>

#define ROWS 4

#define COLS 4

// ========================================

{

printf ("\n");

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

{

for (int j=0; j<COLS; j++)

{

printf ("%5d", matrix [i*COLS+j]);

}

}

//=================================

void exchange_rows (int* row_1, int * row_2)

{

int j, I, c;

for (j=0 j<COLS; j++)

}

c=row_2 [j];

row+2[j]=row_1 [j];

row_1[j]=c;

}

//======================================

//======================================

int main (void)

{

int matrix [ROWS][COLS];

int i, j;

clrscr ();

randomize ();

for (i=0; i<ROWS; i++)

{

for (j=0; j<CALS; j++)

{

matrix [j]=random (11);

}

}

printf ("********Sortirovanie matrici********\n\n");

textcolor (RED);

cprintf ("Matrica do sortirovki: \n");

print_matrix (z matrix [0][0]);

printf("/n");

//-------------------------------------------------------

int k;

textcolor (GREEN);cprintf (Vvedite skolko nado sortirovat matricy);

scanf ("%d", &k);

for (i=0; j<ROWS-i-1; j++)

{

if (matrix [j][0], matrix [j+1][0])

{

exchange_rows (matrix [j]), matrix [j+1]);

}

}

textcolor (RED);

cprintf ("\n\n Otsortirovanaya matrica: /n");

print_matrix (& matrix[0][0]);

//--------------------------------------------

getch ();

return0;

}

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

Век не забуду! Нужна БД Access "Инструментальная кладовая

Жене надо срочно (как обычно!), а я филолог и в Access'ах ни в рот конечностью!!!

Если у кого подобие такого чуда есть, скиньте, пожалуйста.

Техзадание.

В кладовой несколько видов инструментов: измерительные, вспомогательные, слесарные и станочные.

Ежедневная выдача инструментов рабочим

Прием инструментов от рабочих, новых инструментов и инструментов после ремонта.

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

1. Формирование отчетов о количестве инструментов, находящихся на хранении на произвольную дату;

2. Формирование отчетов о количестве инструментов, выданных за произвольный период времени с разделением по их типам и видам;

3. Формирование отчетов о количестве инструментов, получаемых за произвольный период времени из различных источников, описанных в программе;

4. Формирование отчетов о расходе инструментов за произвольный период времени на различные цели, описанные в программе;

5. Формирование отчетов о движении инструментов по различным направлениям с учетом их типов и видов.

Если будут хотя бы половина от этого Уже огромное спасибо!!!!!!

И если есть у кого, то слейте в 2003 акцессе (у препода, да и у меня 2003)

Но буду благодарен и за 2007, 2008, 2009 :)

i

Уведомление:

Artur88: Тема перемещена, что вы подразумеваете под 2008, 2009 ?

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

Составить функцию вычисления среднего арифметического элементов вектора. Используя ее, преобразовать квадратную матрицу следующим образом: диагональные элементы матрицы заменить средними арифметическими значениями элементов соответствующих строк.

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

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

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

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

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

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

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

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

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

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

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



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