Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389

Открыть новую тему     Написать ответ в эту тему

de_lirium

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Тема создана для накопления реализаций типовых задач на С/С++.
Прежде чем публиковать своё условие задачи, убедитесь, что её решение (или решение очень похожей задачи) в теме и полезных ссылках отсутствует (например воспользуйтесь ссылкой Версия для печати вверху справа страницы и поищите в ней).
Постарайтесь как можно полнее сформулировать постановку задачи (чтобы тому, кто решит вам помочь, не приходилось тратить своё время ещё и на выпытывание у вас деталей условия; если вам не понятно, как это сделать - постарайтесь представить, что эта программа у вас уже есть, и "поработать" с ней - вот все детали, которые при этом придут в голову, с большой вероятностью должны быть в условии задачи).
Если вы уже пытались сделать эту задачу, но у вас не получилось и вы хотите довести дело до конца - обязательно выложите результат своей попытки, предварительно убедившись, что ваш код компилируется.

Вопросы по технологиям лучше задавать тут.

Прежде чем просить помощи в задании...
Если позарез надо и вы даже готовы заплатить

Если вам вдруг не отвечают или ответ вас не устраивает, и вообще полезно прочитать всем спрашивающим.

Полезные ссылки:
 
C++: в том числе и решения задач (eng)
задачи на C
 
Проверить свою задачку можно:
Онлайн-компилятором Visual C++
godbolt
Wandbox
Одним из онлайн-компиляторов на ideone.com

Всего записей: 28 | Зарегистр. 23-07-2004 | Отправлено: 02:14 20-12-2004 | Исправлено: Daniyar91, 19:25 27-09-2017
bodyguard77



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Друзья, доброго времени суток! Кому не тяжело и кто разбирается в графике, помогите пожалуйста нарисовать графически (С++, с использованием классов, наследования и т.д. (при необходимости))  плавсредство... Особо не имеет значение, но только лишь бы не плот =) Там корабль либо катер. Желательно с присоединенной мышью, так как в программе будет много окон меню и право выбора необходимо. Буду благодарен. Заранее огромное спасибо!
 
Добавлено:
Если не составит труда, проставьте комментарии функций.

Всего записей: 8 | Зарегистр. 04-04-2008 | Отправлено: 16:18 16-05-2008 | Исправлено: bodyguard77, 16:24 16-05-2008
Boo88



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
c0d3r
 
я понимаю принцип работы программы, но не могу представить это кодом...ваще никак...
если тебе не сложно сможешь помочь???
это для ООП(создаем в Managed C++ empty project)

Всего записей: 14 | Зарегистр. 16-12-2007 | Отправлено: 12:17 17-05-2008
DJ_Tuzik



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вздраствуйте, ребята. Никто не встричался с программой, которая должна шифровать и дешифровать текстовые файлы (метод Виженера, перестановки, одноразового блокноту). Если у кого-то есть какие-нибудь исходник, выложите, пожалуйста. А то курсовую надо писать, а я что-то не понимаю как.

Всего записей: 8 | Зарегистр. 19-02-2008 | Отправлено: 14:09 17-05-2008
Jonku



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте господа программисты....помогите 6едному студенту....
 
(1)-ДАНА ЦЕЛОЧИЧЛЕННАЯ КВАДРАТНАЯ МАТРИЦА.ОПРЕДЕЛИТЬ:
1.ПРОИЗВЕДЕНИЕ ЭЛЕМЕНТОВ В ТЕХ СТРОКАХ.КОТОРЫЕ НЕ СОДЕРЖАТ ОТРИЦАТЕЛЬНЫХ ЭЛЕМЕНТОВ
2.МАКСИМУМ СРЕДИ СУММ ЭЛЕМЕНТОВ ДИАГОНАЛЕЙ,ПАРАЛЛЕЛЬНЫХ ГЛАВНОЙ ДИАГОНАЛИ МАТРИЦЫ
 
(2)-НАПИСАТЬ ПРОГРАММУ КОТОРАЯ СЧИТЫВАЕТ АНГЛИЙСКИЙ ТЕКСТ ИЗ ФАЙЛА И ВЫВОДИТ НА ЭКРАН СЛОВА,НАЧИНАЮЩИЕСЯ С ГЛАСНЫХ 6УКВ
 
ЗЫ: Заранее спаси6о....

Всего записей: 14 | Зарегистр. 22-05-2007 | Отправлено: 00:32 18-05-2008
boiko

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите пожалуйста найти ошибку в программе, которая должна записывать и читать список из файла
#include<stdio.h>
#include<stdlib.h>
#define N 3
 
 struct student {
    char name[50];
    char surname[50];
    int year;
    struct student* next;
    struct student* prev;
} ;
 struct student*root=NULL;
struct student* AddToList(struct student* root,struct student* p){
    if(NULL==p){
        return root;
    };
    p->next=root;
    p->prev=p->next;
    return p;
};
 
 
struct student* INPUT_STUDENTS(student*root){
    student*p=(student*)malloc(sizeof(student));
    if (p==NULL) {
        printf("error");
        return 0;
    };
 
    FILE*f=fopen("student.txt","a+");
    printf("vvedit name\n");
    scanf("%s",p->name);
    fprintf(f,"%s\n",p->name);
    printf("vvedit surname\n");
    scanf("%s",p->surname);
    fprintf(f,"%s\n",p->surname);
    printf("year\n");
    scanf("%d",&(p->year));
    fprintf(f,"%d\n",p->year);
    fclose(f);
    return p;
};
struct student*read(){
    
    FILE*f=fopen("student.txt","a+");
    while(!feof(f)){
        struct student*p=(struct student*)malloc(sizeof(struct student));
        fscanf(f,"%s",p->name);
        fscanf(f,"%s",p->surname);
        fscanf(f,"%d",&(p->year));
        root=p;
                
    };
    fclose(f);
    return root;
};
 
 
void PRINT_LIST(struct student*root){
    while(root!=NULL) {
        printf(" %s %s %d \n",root->name,root->surname,root->year);
    
        root=root->next;
    };
};
 
void main(){
    int a;
    printf("if you want add student to file press 1\nif you want read file press2\n");
    scanf("%d",&a);
    if(a==1){
        for(int i=0;i<N;i++){
            root=AddToList(root,INPUT_STUDENTS(root));
        }
    }
    if(a==2)
        root=read();
    PRINT_LIST(root);
}

Всего записей: 20 | Зарегистр. 27-11-2007 | Отправлено: 16:33 18-05-2008
c0d3r



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
boiko
 

Цитата:
Помогите пожалуйста найти ошибку в программе, которая должна записывать и читать список из файла

 
Это пример того, как НЕ НАДО задавать вопросы, если вы хотите получить ответ.
 
Если вы хотите получить ответ, то нужно указать в чем ошибка проявляется, какие данные вы вводили, какие получили и какие ожидали.
 
Конкретно у вас ошибка в ф-ции read().

Всего записей: 132 | Зарегистр. 24-08-2004 | Отправлено: 13:57 19-05-2008
graycrow



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
fopen в этой функции открывать не с "a+" а "r"
и вообще, если подумать над функцией read, то записи типа root = root - дурной тон! откуда такая запись? в main объявлено root = read();, а read возвращает root.
 
Добавлено:
a+ открывает на добавление с установленной кареткой на конец файла

Всего записей: 314 | Зарегистр. 08-06-2005 | Отправлено: 17:01 19-05-2008
boiko

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Со списками разобрался
Но теперь возникли аналогичные проблеьы с деревьями
#include<stdio.h>
#include<stdlib.h>
#define N 3
struct tree{
    int value;
    tree*left;
    tree*right;
};
struct tree *root=NULL;
tree* AddToTree(tree*root,tree*p){
    if(root==NULL){
        p->left=NULL;
        p->right=NULL;
        return p;
    }
    if(root->value<p->value){
        if(!root->left){
            p->left=p->right=NULL;
            root->left=p;
            return root;
        }else{
            return root;
        };
    }else{
        if(!root->right){
            p->left=p->right=NULL;
            root->right=p;
            return root;
        }else{
            return root;
        };
    }
}
struct tree*InputElement(){
    struct tree* p=(struct tree*)malloc(sizeof(struct tree));
        printf("input value:\n");
        scanf("%d",&(p->value));    
        p->left=NULL;
        p->right=NULL;
        return p;
}
void Print(tree*root){
    if(NULL==root)
        return;
    Print(root->left);
    printf("%d",root->value);
    Print(root->right);
}
tree*Read(){
    
 FILE*f=fopen("Myfile.sav","a+");
 
     while(!feof(f)){
         struct tree* p=(struct tree*)malloc(sizeof(tree));
        fread(p,sizeof(tree),1,f);
        if(p==NULL)
            return root;
 
        root=AddToTree(root,p);
            if(p->left!=NULL){
                    p=p->left;
                }else{
                    p=p->right;
                }
        
        
         };
     return root;
     fclose(f);
      
 }
 
void SaveToFile(tree*root){
    for(int i=0;i<N;i++){
    root=AddToTree(root,InputElement());
        };
    struct tree*p=root;
    FILE*f=fopen("Myfile.sav","a+");
        while(p!=NULL){
            fwrite(p,sizeof(tree),1,f);
            if(p->left!=NULL){
                p=p->left;
            }else{
                p=p->right;
                }
        }
    fclose(f);
    
}
 
void main(){
    int choise;
    printf("1-Addtotree\n2-read\n");
    scanf("%d",&choise);
    if(choise==1)
        SaveToFile(root);
    if(choise==2)
        root=Read();
    Print(root);
 

Всего записей: 20 | Зарегистр. 27-11-2007 | Отправлено: 18:46 19-05-2008
bodyguard77



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пожалуйста, помогите с графикой...  
 

Цитата:
Друзья, доброго времени суток! Кому не тяжело и кто разбирается в графике, помогите пожалуйста нарисовать графически (С++, с использованием классов, наследования и т.д. (при необходимости))  плавсредство... Особо не имеет значение, но только лишь бы не плот =) Там корабль либо катер. Желательно с присоединенной мышью, так как в программе будет много окон меню и право выбора необходимо. Буду благодарен. Заранее огромное спасибо!  
 
Добавлено:  
Если не составит труда, проставьте комментарии функций.

Всё это под DOS и на простейшем Turbo C 3.0
Уж очень нужно... пожалуйста!

Всего записей: 8 | Зарегистр. 04-04-2008 | Отправлено: 23:22 19-05-2008 | Исправлено: bodyguard77, 00:03 20-05-2008
Kerdan

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <conio.h>
#include <time.h>
char *item_menu[] = {"Генерация лабиринта",
           "Выбор Уровня сложности",
            "О программе",
                "Выход"};
int  lab[100][100],k,l,i,j,n,m,hod[200][6],other,storona,nomerhoda,ind=0,str,F=0;
void generate(int n, int m) {
 for(int s=0;s<20;s++) {
  for(int j=0;j<4;j++) {
   hod[s][j]=j+1;
  }
 }
 for(int i=0;i<n;i++) {
  for(int j=0;j<m;j++) {
   if((i==0)||(i==n-1)||(j==0)||(j==m-1)) {
    lab[i][j]=2;
   }
   else {
     lab[i][j]=1;
   }
  }
 }
 int vhod;
 vhod=rand()%(m-1);
 if(vhod==0) {
  vhod++;
 }
 lab[n-1][vhod]=0;
 lab[n-2][vhod]=0;
 k=n-2;
 l=vhod;
}
//=====================
int change() {
 F++;
 if(other!=1) {
  storona=rand()%5;
 }
 if(F%3==0) storona=3;
 other=0;
 if(storona==0) storona=1;
 if(storona==1) {
  if((lab[k][l-1]!=2)&&(lab[k][l-1]!=0)&&(lab[k+1][l-1]!=0)&&(lab[k][l-2]!=0)&&(lab[k-1][l-1]!=0)) {
   lab[k][l-1]=0;
   hod[nomerhoda][storona-1]=0;
   l--;
   hod[nomerhoda][4]=k;
   hod[nomerhoda][5]=l;
   nomerhoda++;
   other=0;
   return 1;
  }
  else {
   hod[nomerhoda][storona-1]=0;
   for(int h=0;h<4;h++) {
    if(hod[nomerhoda][h]!=0) {
     break;
    }
   }
   if(h==4) {
    return 0;
   }
   for(int i=0;i<4;i++) {
    if(hod[nomerhoda][i]!=0) {
     storona=hod[nomerhoda][i];
     other=1;
     break;
    }
   }
  }
 }
 if(storona==2) {
  if((lab[k-1][l]!=2)&&(lab[k-1][l]!=0)&&(lab[k-2][l]!=0)&&(lab[k-1][l-1]!=0)&&(lab[k-1][l+1]!=0)) {
   lab[k-1][l]=0;
   hod[nomerhoda][storona-1]=0;
   k--;
   hod[nomerhoda][4]=k;
   hod[nomerhoda][5]=l;
   nomerhoda++;
   other=0;
   return 1;
  }
  else {
   hod[nomerhoda][storona-1]=0;
    for(int h=0;h<4;h++) {
    if(hod[nomerhoda][h]!=0) {
     break;
    }
   }
   if(h==4) {
    return 0;
   }
   for(int i=0;i<4;i++) {
    if(hod[nomerhoda][i]!=0) {
     storona=hod[nomerhoda][i];
     other=1;
     break;
    }
   }
  }
 }
 if(storona==3) {
  if((lab[k][l+1]!=2)&&(lab[k][l+1]!=0)&&(lab[k-1][l+1]!=0)&&(lab[k][l+2]!=0)&&(lab[k+1][l+1]!=0)) {
   lab[k][l+1]=0;
   hod[nomerhoda][storona-1]=0;
   l++;
   hod[nomerhoda][4]=k;
   hod[nomerhoda][5]=l;
   nomerhoda++;
   other=0;
   return 1;
  }
  else {
   hod[nomerhoda][storona-1]=0;
    for(int h=0;h<4;h++) {
    if(hod[nomerhoda][h]!=0) {
     break;
    }
   }
   if(h==4) {
    return 0;
   }
   for(int i=0;i<4;i++) {
    if(hod[nomerhoda][i]!=0) {
     storona=hod[nomerhoda][i];
     other=1;
     break;
    }
   }
  }
 }
 if(storona==4) {
  if((lab[k+1][l]!=2)&&(lab[k+1][l]!=0)&&(lab[k+1][l-1]!=0)&&(lab[k+1][l+1]!=0)&&(lab[k+2][l]!=0)) {
   lab[k+1][l]=0;
   hod[nomerhoda][storona-1]=0;
   k++;
   hod[nomerhoda][4]=k;
   hod[nomerhoda][5]=l;
   nomerhoda++;
   other=0;
   return 1;
  }
  else {
   hod[nomerhoda][storona-1]=0;
   for(int h=0;h<4;h++) {
    if(hod[nomerhoda][h]!=0) {
     break;
    }
   }
   if(h==4) {
    return 0;
   }
   for(int i=0;i<4;i++) {
    if(hod[nomerhoda][i]!=0) {
     storona=hod[nomerhoda][i];
     other=1;
     break;
    }
   }
  }
 }
}
 
 
//===========================================================
unsigned int povorot(void) {
 F++;
 if(other!=1) {
  storona=rand()%5;
 }
 if(F%3==0) storona=3;
 other=0;
 if(storona==0) storona=1;
 if(storona==1) {
  if((lab[k][l-1]!=2)&&(lab[k][l-1]!=0)&&(lab[k+1][l-1]!=0)&&(lab[k][l-2]!=0)&&(lab[k-1][l-1]!=0)) {
   lab[k][l-1]=0;
   hod[nomerhoda][storona-1]=0;
   l--;
   hod[nomerhoda][4]=k;
   hod[nomerhoda][5]=l;
   nomerhoda++;
   other=0;
   if(k==1) ind=1;
  }
  else {
   hod[nomerhoda][storona-1]=0;
   for(int h=0;h<4;h++) {
    if(hod[nomerhoda][h]!=0) {
     break;
    }
   }
   if(h==4) {
    for(int p=0;p<4;p++) {
     hod[nomerhoda][p]=p+1;
    }
   nomerhoda--;
  // lab[hod[nomerhoda][4]][hod[nomerhoda][5]]=1;
   hod[nomerhoda-1][4]=k;
   hod[nomerhoda-1][5]=l;
   }
   for(int i=0;i<4;i++) {
    if(hod[nomerhoda][i]!=0) {
     storona=hod[nomerhoda][i];
     other=1;
     if(k==1) ind=1;
     return 0;
    }
   }
  }
 }
 if(storona==2) {
  if((lab[k-1][l]!=2)&&(lab[k-1][l]!=0)&&(lab[k-2][l]!=0)&&(lab[k-1][l-1]!=0)&&(lab[k-1][l+1]!=0)) {
   lab[k-1][l]=0;
   hod[nomerhoda][storona-1]=0;
   k--;
   hod[nomerhoda][4]=k;
   hod[nomerhoda][5]=l;
   nomerhoda++;
   other=0;
   if(k==1) ind=1;
  }
  else {
   hod[nomerhoda][storona-1]=0;
    for(int h=0;h<4;h++) {
    if(hod[nomerhoda][h]!=0) {
     break;
    }
   }
   if(h==4) {
    for(int p=0;p<4;p++) {
     hod[nomerhoda][p]=p+1;
    }
   nomerhoda--;
   //lab[hod[nomerhoda][4]][hod[nomerhoda][5]]=1;
   k=hod[nomerhoda-1][4];
   l=hod[nomerhoda-1][5];
   }
   for(int i=0;i<4;i++) {
    if(hod[nomerhoda][i]!=0) {
     storona=hod[nomerhoda][i];
     other=1;
     if(k==1) ind=1;
     return 0;
    }
   }
  }
 }
 if(storona==3) {
  if((lab[k][l+1]!=2)&&(lab[k][l+1]!=0)&&(lab[k-1][l+1]!=0)&&(lab[k][l+2]!=0)&&(lab[k+1][l+1]!=0)) {
   lab[k][l+1]=0;
   hod[nomerhoda][storona-1]=0;
   l++;
   hod[nomerhoda][4]=k;
   hod[nomerhoda][5]=l;
   nomerhoda++;
   other=0;
   if(k==1) ind=1;
  }
  else {
   hod[nomerhoda][storona-1]=0;
    for(int h=0;h<4;h++) {
    if(hod[nomerhoda][h]!=0) {
     break;
    }
   }
   if(h==4) {
    for(int p=0;p<4;p++) {
     hod[nomerhoda][p]=p+1;
    }
   nomerhoda--;
   //lab[hod[nomerhoda][4]][hod[nomerhoda][5]]=1;
   k=hod[nomerhoda-1][4];
   l=hod[nomerhoda-1][5];
   other=0;
   return 0;
   }
   for(int i=0;i<4;i++) {
    if(hod[nomerhoda][i]!=0) {
     storona=hod[nomerhoda][i];
     other=1;
     if(k==1) ind=1;
     return 0;
    }
   }
  }
 }
 if(storona==4) {
  if((lab[k+1][l]!=2)&&(lab[k+1][l]!=0)&&(lab[k+1][l-1]!=0)&&(lab[k+1][l+1]!=0)&&(lab[k+2][l]!=0)) {
   lab[k+1][l]=0;
    hod[nomerhoda][storona-1]=0;
    k++;
    hod[nomerhoda][4]=k;
    hod[nomerhoda][5]=l;
    nomerhoda++;
    other=0;
    if(k==1) ind=1;
   }
   else {
    hod[nomerhoda][storona-1]=0;
    for(int h=0;h<4;h++) {
     if(hod[nomerhoda][h]!=0) {
      break;
     }
    }
    if(h==4) {
     for(int p=0;p<4;p++) {
      hod[nomerhoda][p]=p+1;
     }
     nomerhoda--;
     k=hod[nomerhoda-1][4];
     l=hod[nomerhoda-1][5];
    }
    for(int i=0;i<4;i++) {
     if(hod[nomerhoda][i]!=0) {
      storona=hod[nomerhoda][i];
      other=1;
     if(k==1) ind=1;
     return 0;
    }
   }
  }
 }
}
 
 
 
void main() {
 clrscr();
 int n,m,N;
 srand(time(0));
 cin >>n>>m>>N;
 generate(n,m);
 while(ind!=1) {
  povorot();
 }
 int F=0;
 if(N==1) N=50;
 if(N==2) N=5;
 lab[0][l]=0;
 for(int i=n-2;i>1;i--) {
  for(int j=m;j>0;j--) {
   if(lab[i][j]==0) {
    F++;
    if(N==3) N=F;
    for(int s=0;s<20;s++) {
     for(int j=0;j<4;j++) {
      hod[s][j]=j+1;
     }
    }
    if(F%N==0) {
     k=i;
     l=j;
     nomerhoda=0;
     while(change()) {
      change();
     }
    }
   }
  }
 }
 for(i=0;i<n;i++) {
 printf("\n");
  for(j=0;j<m;j++) {
   printf("% d",lab[i][j]);
  }
 }
}
 
Помогите написать меню

Всего записей: 10 | Зарегистр. 18-12-2007 | Отправлено: 14:36 20-05-2008
weezy

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ помогите, что я не так написал? у меня когда появляется черное окошко для вводя своих данных то ани там выводятся 2 раза через строку
# include <iostream.h>
# include <string.h>
# include "header.h"
м
int main()
 
{
    int n;
    cout<<"enter the maximal size of database"<<endl;
    cin>>n;
    try
    {
        container sp(n);
        kryiz kryiz;
        cin>>kryiz;
        sp.insert (kryiz);
        cin>> kryiz;
        sp.insert (kryiz);
         cin>> kryiz;
        sp.insert (kryiz);
        sp.print (cout);
        cout<<endl;
 
        container sp1(sp);
    sp1.print(cout);
    char name_teploxod[10];
    cout<<"Enter teploxod"<<endl;
cin>>name_teploxod;
    sp1.del(name_teploxod);
        sp1.print (cout);
 
    
    }
    catch (char *str)
    {
        cout<<str<<endl;
    }
}
 
 
 
Добавлено:
помогите еще если не сложно. как мне саставить счетчик даты? к примеру мне надо ввести, что теплоход отправился в какойнибудь день и плавал 30 дней, мне надо выщитать когда он вернется. я так панимаю что нада ввести дату атплытия, но как ее вводить, если в типе int нельзя вводить точки(20.05.2008)?

Всего записей: 6 | Зарегистр. 13-05-2008 | Отправлено: 19:25 20-05-2008
BakSS

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пожалуйста. помогите мне с курсовой работой... Кто-нить делал шифрование Эль-Гамаль на С++, подскажите как делать

Всего записей: 2 | Зарегистр. 12-05-2008 | Отправлено: 17:04 21-05-2008
maynim



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста! Как сделать программу подсчёта входящего/исходящего интернет трафика на локальном компьютере, подсчитывая отдельно:  
1) трафик по HTTP протоколу;
2) трафик по FTP протоколу;
3) весь остальной трафик не относящийся к первым двум.

Всего записей: 124 | Зарегистр. 26-12-2007 | Отправлено: 20:47 21-05-2008
Alex_999

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В одномерном массиве, состоящем из n вещественных элементов , вычислить:
1) количество отрицательных элементов массива;
2) сумму модулей элементов массива расположенных после минимального по модулю элемента.
 Заменить все отрицательные элементы массива их квадратами и упорядочить элементы массива по возрастанию.
 
Тема: Одномерные массивы и указатели.
Павловская Т.А. - C/C++: Программирование на языке высокого уровня ...
 
Кто может помогите.

Всего записей: 4 | Зарегистр. 22-05-2008 | Отправлено: 23:07 22-05-2008
c0d3r



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_999
 
Лови
 

Код:
 
#include <algorithm>
#include <cstdlib>
#include <iostream>
#include <iterator>
#include <functional>
#include <numeric>
#include <vector>
 
using std::accumulate;
using std::bind2nd;
using std::cout;
using std::count_if;
using std::copy;
using std::endl;
using std::less;
using std::min_element;
using std::ostream_iterator;
using std::transform;
using std::vector;
 
void
print_vector(const vector<int> &vec, const char *msg) {
    cout << msg << endl;
    copy(vec.begin(), vec.end(), ostream_iterator<int>(cout, " "));
    cout << endl;
}
 
struct replace_negate {
    int operator()(int val) {
        if (val < 0) {
            return (val * val);
        }
        return val;
    }
};
 
int main() {
     
    vector<int> vec;
    vec.push_back(1);
    vec.push_back(-1);
    vec.push_back(2);
    vec.push_back(89);
    vec.push_back(0);
    vec.push_back(-3);
    vec.push_back(12);
    vec.push_back(7);
    vec.push_back(-1);
    vec.push_back(22);
 
    print_vector(vec, "Массив:");
     
    size_t negate_counter = count_if(vec.begin(), vec.end(), bind2nd(less<int>(), 0));
    cout << "Найдено отрицательных чисел: " << negate_counter << endl;
     
    vector<int> mod_vec(vec);
     
    // вычисляем модуль каждого числа
    transform(mod_vec.begin(), mod_vec.end(), mod_vec.begin(), abs);
     
    print_vector(mod_vec, "Массив, после вычисления модулей:");
     
    // ищем минимальный элемент
    vector<int>::iterator min;
    min = min_element(mod_vec.begin(), mod_vec.end());
    cout << "Минимальный по модулю элемент: " << *min << endl;
     
    // считаем сумму
    long sum = 0;
    sum = accumulate(min, mod_vec.end(), 0);
     
    cout << "Сумма модулей элементов, расположенных после минимального по модулю элемента равна " << sum << endl;
     
    transform(vec.begin(), vec.end(), vec.begin(), replace_negate());
    print_vector(vec, "После замены отрицательных чисел на их квадраты:");
     
    sort(vec.begin(), vec.end());
    print_vector(vec, "После сортировки:");
     
    return 0;
}
 

 
Вот вывод:
 

Цитата:
 
[c0der@xxx ~]$ ./calculate
Массив:
1 -1 2 89 0 -3 12 7 -1 22  
Найдено отрицательных чисел: 3
Массив, после вычисления модулей:
1 1 2 89 0 3 12 7 1 22  
Минимальный по модулю элемент: 0
Сумма модулей элементов, расположенных после минимального по модулю элемента равна 45
После замены отрицательных чисел на их квадраты:
1 1 2 89 0 9 12 7 1 22  
После сортировки:
0 1 1 1 2 7 9 12 22 89
 

Всего записей: 132 | Зарегистр. 24-08-2004 | Отправлено: 09:37 23-05-2008
distance

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_999
я обычно по утрам за чашкой кофе проскакиваю галопом по европам по какой-нмбудь кинишке, но ладно уж, держи

Код:
#include <algorithm>
#include <numeric>
#include <iostream>
#include <iterator>
#include <locale>
 
/*
В одномерном массиве, состоящем из n вещественных элементов , вычислить:
1) количество отрицательных элементов массива;
2) сумму модулей элементов массива расположенных после минимального по модулю элемента.
Заменить все отрицательные элементы массива их квадратами и упорядочить элементы массива по возрастанию.
 
*/
 
//-------------------------------------------------------------------------------
// 1) количество отрицательных элементов массива;
template <typename T>
size_t count_negates(const T* arr, const size_t N)
{
    return std::count_if(arr, arr+N, std::bind2nd(std::less<T>(), T()));
}
 
//-------------------------------------------------------------------------------
// Вспомогательный класс-предикат для сравнения модулей чисел.
template <typename T>
struct abs_compare : public std::binary_function<T, T, T>
{
    result_type operator()(const first_argument_type& v1, const second_argument_type& v2) const
    {
        return std::abs(v1) < std::abs(v2);
    }
};
 
// 2) сумму модулей элементов массива расположенных после минимального по модулю элемента.
template <typename T>
T accumulate_after_min_mod(const T* arr, const size_t N)
{
    typedef typename std::allocator<T>::const_pointer const_iterator;
    const_iterator it = std::min_element(arr, arr+N, abs_compare<T>());
    if (it == arr+N) // если нечего подсчитывать возвращаем 0
        return T();
    return std::accumulate(it+1, arr+N, T());
}
 
//-------------------------------------------------------------------------------
// Вспомогательная функция делающая заданное преобразование массива.
template <typename T, typename Pred, typename Func>
T* transform_if(T* arr, const size_t N, T* dest, Pred pred, Func func)
{
    T* last = arr+N;
    for( ; arr != last; arr++, dest++)
    {
        if (pred(*arr))
            *dest = func(*arr);
    }
    return (dest);
}
 
// Вспомогательный класс-предикат для возведения числа в квадрат.
template <typename T>
struct square : public std::unary_function<T, T>
{
    result_type operator()(const argument_type& v) const
    {
        return (v*v);
    }
};
 
// Заменить все отрицательные элементы массива их квадратами и упорядочить элементы массива по возрастанию.
template <typename T>
void transform(T* arr, const size_t N)
{
    // замена
    transform_if(arr, N, arr, std::bind2nd(std::less<T>(), T()), square<T>());
    // упорядочение
    std::sort(arr, arr+N);
}
 
// Вывод массива на экран.
template <typename T, typename O>
void print_array(const T* arr, const size_t N, O& o)
{
    std::copy(arr, arr+N, std::ostream_iterator<T>(o, " "));
    std::cout << std::endl;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    // Инициализация массива
    int arr[] = {...};
    const size_t N = sizeof(arr) / sizeof(arr[0]);
 
    // Вывод на печать
    std::cout << "Исходный массив:" << std::endl;
    print_array(arr, N, std::cout);
    
    // Подсчет отрицательных элементов
    size_t negates = count_negates(arr, N);
    std::cout << "Количество отрицательных элементов: " << negates << std::endl;
 
    // Суммирование
    int sum = accumulate_after_min_mod(arr, N);
    std::cout << "Сумма модулей элементов массива после минимального по модулю элемента: " << sum << std::endl;
    
    transform(arr, N);
    std::cout << "Массив после преобразования:" << std::endl;
    print_array(arr, N, std::cout);
 
    return (0);
}

 
пример вывода:

Код:
Исходный массив:
11 2 3 -5 -4 -3 9 8 7 -2 -1 -10 -6
Количество отрицательных элементов: 7
Сумма модулей элементов массива после минимального по модулю элемента: -16
Массив после преобразования:
1 2 3 4 7 8 9 9 11 16 25 36 100

Всего записей: 878 | Зарегистр. 28-03-2004 | Отправлено: 10:27 23-05-2008
anka123

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пожалуйста, помогите хоть чем-нибудь!! совсем ничего не понимаю(Борланд си). или укажите ссылки с похожими задачами.
1. Циклы
a    b    n    F1(x)         F2(x)
-2    5    14    |x+10|5         e-(x+5)
 
Ввести четырехзначное число. Превратить его в двузначное, отбросив первую и последнюю цифры. Вывести полученное двузначное число на экран.
2. Обработка файла записей
Вывести анкетные данные студентов, получивших в последнюю сессию оценки 2;
3. Сортировки массивов
Написать программу сортировки элементов массива, имеющих нечетные индексы
4. Обработка текста
Дан текст. Преобразовать его, заменив все символы, не являющиеся буквами или цифрами на апострофы, и заменив каждую большую букву одноименной малой.  
5. Множества
Требуется построить множества М1,М2,М3 из указанных элементов
и напечатать эти множества а также  результат указанной операции  
-    знаки препинания
-    М3 * (М1-М2)

Всего записей: 3 | Зарегистр. 23-05-2008 | Отправлено: 18:57 23-05-2008
Alex_999

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
c0d3r, distance спасиб парни

Всего записей: 4 | Зарегистр. 22-05-2008 | Отправлено: 23:05 23-05-2008
nilkevich

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Люди добрые подскажете человеку, как проверить строка на наличие сточных букв и цифр??
З.Ы. строка читается из stdin, потом проверяется на наличие в ней стройных букв и потом возвращает значение true или false.
thx

Всего записей: 6 | Зарегистр. 21-11-2007 | Отправлено: 16:53 24-05-2008
c0d3r



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nilkevich
 
Вот реализация на С/С++:
 

Код:
 
bool
is_word_ctype(const char *str) {
     
    assert(str != NULL);
     
    for (size_t i = 0; i < strlen(str); ++i) {
        if (!isalnum(str[ i ]) || isupper(str[ i ])) {
            return false;
        }
    }
     
    return true;
}
 

Всего записей: 132 | Зарегистр. 24-08-2004 | Отправлено: 19:56 24-05-2008
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru