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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
cp58

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

Цитата:
const int * natural_order;
int - понятно, intеger, но причём здесь "const" и "*"?  

const - ключевое слово, означает дать компилятору директиву контролировать постоянство значения переменной(read-only), в данном случае значения по указателю, а к примеру запись int * const natural_order дает неизменность самого указателя.
* - указатель.

Всего записей: 295 | Зарегистр. 06-12-2011 | Отправлено: 02:12 09-06-2012
Aleksandr N

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
cp58
Получается просто:
natural_order: Integer;
 
Остаётся выяснить, как это за чудо перевести:
#define V(i,a,b,c,d) (((INT32)a << 16) | ((INT32)c << 8) | ((INT32)d << 7) | b)

Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 11:44 09-06-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
перевести куда?

Всего записей: 24037 | Зарегистр. 06-12-2002 | Отправлено: 13:18 09-06-2012 | Исправлено: akaGM, 13:19 09-06-2012
Aleksandr N

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
Из "С" в "Delphi/Pascal".

Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 15:58 09-06-2012
vadfromnu

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

Цитата:
Получается просто:  
 natural_order: Integer;

natural_order: ^Integer;
Как обозначается константность в делфи не помню.
 

Цитата:
Остаётся выяснить, как это за чудо перевести:  
 #define V(i,a,b,c,d) (((INT32)a << 16) | ((INT32)c << 8) | ((INT32)d << 7) | b)

Как функции определяются тоже не помню, но << заменяется на Shl, а | на Or.

Всего записей: 7 | Зарегистр. 14-08-2008 | Отправлено: 16:04 09-06-2012 | Исправлено: vadfromnu, 16:05 09-06-2012
Aleksandr N

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

Цитата:
<< заменяется на Shl, а | на Or

Это я понял, мне не понятно как построить всю конструкцию.

Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 16:22 09-06-2012
ne_viens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Никак, только написать как функцию.

Всего записей: 1521 | Зарегистр. 01-11-2004 | Отправлено: 00:43 10-06-2012
Aleksandr N

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
При этом "V" используется как:
 
const INT32 aritab[113+1] = {
  V(0, 0x5a1d, 1, 1, 1),
...
 
Вот и хотелось-бы поконкретнее.

Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 00:51 10-06-2012
ne_viens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
const INT32 aritab[113+1] = {
 0x5a1d0181,
...
}

Всего записей: 1521 | Зарегистр. 01-11-2004 | Отправлено: 01:28 10-06-2012
vas0001976

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите чайнику решить две задачи. ЗАДАНИЕ 2.  Составьте программу на языке С++ для следующей задачи: одномерный массив из 14 элементов случайным образом заполняется целыми числами из диапазона [-50..100]. Определить каких элементов массива больше, отрицательных или положительных.  
Программа должна иметь пользовательское меню, которое позволяет: заполнить массив и при этом вывести его на экран, выполнить операции над массивом и просмотреть результаты, закрыть программу.
 
ЗАДАНИЕ 3.  Опишите структуру с именем ATTRAKCION, содержащую следующие поля:
- имя посетителя парка аттракционов;
- название парка аттракционов;
- дата посещения парка;
- цены приобретенных билетов на аттракционы (массив из шести элементов).
Напишите программу, выполняющую следующие действия:
- ввод с клавиатуры данных о посещении парка аттракционов;
- вывод на дисплей сведений о посещении парка аттракционов с указанием максимальной цены билета на аттракцион.

Всего записей: 1 | Зарегистр. 11-06-2012 | Отправлено: 19:30 11-06-2012
ItsJustMe

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

Цитата:
Опишите структуру с именем ATTRAKCION, содержащую следующие поля:

Хорошее имя. Видимо, если описать структуру с другим именем, препод взорвется. Поэтому лучше не рисковать...

Всего записей: 2023 | Зарегистр. 02-09-2005 | Отправлено: 19:45 11-06-2012
optimized

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, пожалуйста, как реализовать drag&drop трех listbox'ов, так чтобы при переносе из одного листбокса на другой, ухваченная строка и та, на которую опустили записывались в третий?

Всего записей: 125 | Зарегистр. 18-10-2008 | Отправлено: 12:43 13-06-2012
cp58

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

Цитата:
listbox

Если уточнить что за listbox'ы(borland,qt,winapi,wxwidgets,gtk+), то помогут быстрее.

Всего записей: 295 | Зарегистр. 06-12-2011 | Отправлено: 22:50 13-06-2012
ItsJustMe

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

Всего записей: 2023 | Зарегистр. 02-09-2005 | Отправлено: 01:00 14-06-2012
optimized

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

Всего записей: 125 | Зарегистр. 18-10-2008 | Отправлено: 15:34 16-06-2012
theone555



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
одно из условий задачи - перегрузить оператор для добавления/удаления элемента массива.
перегрузить то перегрузил, но возникает вопрос... если я последний элемент назначу равным NULL и уменьшу размер массива на единицу это будет корректное удаление элемента массива? просто как удалить элемент массива оператором delete не нашел

Всего записей: 297 | Зарегистр. 08-09-2009 | Отправлено: 22:34 20-06-2012 | Исправлено: theone555, 22:37 20-06-2012
ItsJustMe

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В зависимости, что за элемент. Если его не нужно уничтожать с помощью delete или освобождать память, то корректное.

Всего записей: 2023 | Зарегистр. 02-09-2005 | Отправлено: 03:35 21-06-2012
theone555



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ItsJustMe, именно про освобождение памяти и спрашиваю. в задаче конечно такого условия нет. но очень хочется это дело (выдел/освобождение памяти) прокачать
вопрос снимается. решено копированием

Всего записей: 297 | Зарегистр. 08-09-2009 | Отправлено: 02:12 22-06-2012 | Исправлено: theone555, 23:49 23-06-2012
IbragimOFF

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребят, помогите дописать задачку, уже вторую неделю парюсь
 
вот условия задачи:
Считать из текстового файла данные о жильцах. Записать компьютерщиков и музыкантов в два разных файла, а владельцев Р-100 в третий файл.
 
 
 
на данный момент получилось только сделать чтение из файла определенной структуры, отсеять жильцов по первым буквам фамилии, создать 3 файла, и расписать каждого в свой файл.
 
 
Задачка конечно не очень рационально построена но все же)))
вот код:
 
 
 
#include <stdio.h>
#include <conio.h>
struct DOM
{
    int nomer;        //номер в списке
   char nam[20];    //имя
    char fam[20];    //фамилия
   char otc[20];    //отчество
   char hob[20];    //хобби
   char com[20];    //компьютер      
 
};
//Загрузка структуры из файла
int load(char *name,struct DOM *g)
{
    int i;
    FILE *in;
    in=fopen(name,"r");    //открытие файла
    if(!in)return 0;    //если не удалось, вернуть 0
    i=0;
    while (!feof(in))    //чтение пока не конец файла
    {
        if(fscanf(in,"%d %s %s %s %s %s",&g[i].nomer,&g[i].nam,g[i].fam,g[i].otc,g[i].hob,g[i].com))i++; //если прочитаны все элементы структуры, увеличить кол-во прочитанных элементов
    }
    fclose(in);    //закрыть файл
    return i;    //вернуть кол-во прочитанных элементов
}
 
//Запись в файл программистов
int save(struct DOM *g,int n)
{
    int i,n1;
    FILE *out;
    out=fopen("programmer.txt","w");    //открытие файла
    if(!out)return 0;            //если не удалось, вернуть 0
    for(i=0,n1=0;i<n;i++)        //цикл по структурам
    {
        if(g[i].fam[0]=='Б')    //если первая буква Б
        {
            fprintf(out,"%d %s %s %s %s %s",g[i].nomer,g[i].nam,g[i].fam,g[i].otc,g[i].hob,g[i].com);    //Записать такого жильца в файл
            n1++;                //увеличить кол-во записанных
        }
   else     if(g[i].fam[0]=='Б')    //если первая буква Б
        {
            fprintf(out,"%d %s %s %s %s %s",g[i].nomer,g[i].nam,g[i].fam,g[i].otc,g[i].hob,g[i].com);    //Записать такого жильца в файл
            n1++;                //увеличить кол-во записанных
        }
    }
    fclose(out);        //закрыть файл
    return n1;            //вернуть кол-во записанных элементов
}
 
//Запись в файл музыкантов
int save2(struct DOM *g,int n)
{
    int i,n2;
    FILE *out;
    out=fopen("musician.txt","w");    //открытие файла
    if(!out)return 0;            //если не удалось, вернуть 0
    for(i=0,n2=0;i<n;i++)        //цикл по структурам
    {
        if(g[i].fam[0]=='В')    //если первая буква В
        {
        fprintf(out,"%d %s %s %s %s %s",g[i].nomer,g[i].nam,g[i].fam,g[i].otc,g[i].hob,g[i].com);    //Записать такого жильца в файл
            n2++;                //увеличить кол-во записанных
        }
    }
    fclose(out);        //закрыть файл
    return n2;            //вернуть кол-во записанных элементов
}
 
//Запись в файл  px100
int save3(struct DOM *g,int n)
{
    int i,n3;
    FILE *out;
    out=fopen("px100.txt","w");    //открытие файла
    if(!out)return 0;            //если не удалось, вернуть 0
    for(i=0,n3=0;i<n;i++)        //цикл по структурам
    {
        if(g[i].fam[0]=='Г')    //если первая буква Г
        {
        fprintf(out,"%d %s %s %s %s %s",g[i].nomer,g[i].nam,g[i].fam,g[i].otc,g[i].hob,g[i].com);    //Записать такого жильца в файл
            n3++;                //увеличить кол-во записанных
        }
    }
    fclose(out);        //закрыть файл
    return n3;            //вернуть кол-во записанных элементов
}
 
 
int main()
{
    struct DOM gruppa[30];
    int n,n1,n2,n3;
    char name[30];
    printf("Input file: ");
    gets(name);                    //ввод имени файла с группой
    n=load(name,gruppa);        //загрузка группы
    if(n)                        //если загружена
    {
        n1=save(gruppa,n);        //то сохранить только тех жильцов, фамилии которых нач на Б
        if(n1) printf("Created file programmer.txt");    //если записаны то вывести сообщение
          n2=save2(gruppa,n);        //то сохранить только тех жильцов, фамилии которых нач на В
        if(n2) printf("Created file musician.txt");    //если записаны то вывести сообщение
          n3=save3(gruppa,n);        //то сохранить только тех жильцов, фамилии которых нач на Г
        if(n3) printf("Created file px100.txt");    //если записаны то вывести сообщение
    }
       getch();
 
return 0;
}
 
 
 
 
 
а вот текст текстового файла
 
 
1 Евгений Бревнов Валерьевич Компьютерщик PX100
2 Антон Вараксин Анатольевич Музыкант Macintosh
3 Александр Григорьев Николаевич Жилец PX100
 
 
 
 
кто нибудь может помочь подредактировать условия отсеивания, и сделать код более рациональным?
 

Всего записей: 15 | Зарегистр. 19-12-2011 | Отправлено: 22:20 24-06-2012
frost12

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

Всего записей: 30 | Зарегистр. 01-12-2010 | Отправлено: 08:21 03-07-2012 | Исправлено: frost12, 08:22 03-07-2012
Открыть новую тему     Написать ответ в эту тему

Страницы: 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