Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.25;
Скачать: CL | DM;

Вниз

Задачки по Си   Найти похожие ветки 

 
БарЛог ©   (2005-08-31 19:30) [0]

Дайте пожалуйста несколько задачек. А то задачника нету, а скоро экзамен сдавать. :(
За Си не садился уже несколько лет, но недавно синтаксис повторил.

Хотелось бы что-нибудь типо: заполнить матрицу по спирали...
В общем, хотелось бы пройтись по всем основным операторам.
Заранее спасибо.


 
БарЛог ©   (2005-08-31 19:31) [1]

А то когда придумываешь сам себе, то в процессе придумывания уже начинаешь думать над алгоритмом решения. В итоге задачка получается простая. :(
Хотелось бы задачки из другой головы.


 
Mystic ©   (2005-08-31 19:39) [2]

Абрамов, Гнездилова, Зима...
Задачи по программированию
Поищи в библиотеке


 
БарЛог ©   (2005-08-31 19:59) [3]

Хотелось бы в электронном виде, а то у нас библиотека... поселок в общем :(

Гугл на "Абрамов задачи по программированию скачать" не помогает :(


 
Igorek ©   (2005-08-31 20:23) [4]

Си или Си++?


 
БарЛог ©   (2005-08-31 20:27) [5]

си-си. под дос которая :)


 
palva ©   (2005-08-31 20:32) [6]

Тогда у Кернигана-Ричи. В Интернете должно быть, очень старая и классическая вещь. Они написали не только учебник но и задачник.


 
Kerk ©   (2005-08-31 20:41) [7]

Если надо могу выложить:
Kernighan, Ritchie - The C Programming Language.djvu
Navia - A quick introduction to the C language.djvu
Plauger - The standart C library.djvu
Богатырев - Язык С в cистеме UNIX.pdf
Голуб - Веревка достаточной длины чтобы выстрелить себе в ногу.pdf
Керниган, Ричи - Язык C.pdf

Только не все сразу :)

Задачников нет. :(


 
begin...end ©   (2005-08-31 20:48) [8]

> БарЛог ©   (31.08.05 19:30)

Даю простую задачу.

Имеется массив из 10 чисел. Обратить массив (на место 1-го элемента поставить 10-й, на место 2-го -- 9-й и т.д.).


 
Kerk ©   (2005-08-31 21:07) [9]

begin...end ©   (31.08.05 20:48) [8]

Оч смешно :P


 
begin...end ©   (2005-08-31 21:12) [10]

> Kerk ©   (31.08.05 21:07) [9]

Э-э-э... а что смешного-то? Человек попросил задачу -- ну, я и дал первую, что пришла в голову. Что не так?


 
Kerk ©   (2005-08-31 21:13) [11]

begin...end ©   (31.08.05 21:12) [10]

А. точно.. извини :)


 
БарЛог ©   (2005-08-31 21:23) [12]

begin...end ©   (31.08.05 20:48) [8]

# include <stdio.h>
main();
{
int i,j,mas[10];
for (i=0;i<=3;i++)
 {
 j=mas[i];
 mas[i]=mas[9-i];
 mas[9-i]=j;
 }
}

пасиба.
если кто работает в си, или помнит - проверьте синтаксис, плиз.
ну и если в алгоритме чего напутал...

А задачка и правда простая, но все равно спасибо.


 
БарЛог ©   (2005-08-31 21:25) [13]

> если кто работает в си, или помнит - проверьте синтаксис, плиз.
а то компилятора на работе нету, а где скачать - не знаю :(

ЗЫ Еще бы задачек...

ЗЗЫ Kerk ©   (31.08.05 20:41) [7]
Кернигана я уже скачал...
А что там про веревку? Это программирование?


 
Kerk ©   (2005-08-31 21:28) [14]

БарЛог ©   (31.08.05 21:25) [13]
А что там про веревку? Это программирование?


Название этой книги отражает то, что я считаю основной трудностью при
работе как с Си++, так и с Си: эти языки дают вам столько гибкости, что
если у вас нет желания и способности призвать себя к порядку, то в итоге
вы можете получить гигантский модуль не поддающейся сопровождению
тарабарщины, притворяющейся к тому же компьютерной программой. Вы
можете поистине делать все при помощи этих языков, даже если вы этого
не хотите. В этой книге делается попытка дать средство для преодоления
этой трудности в виде собрания практических правил программирования
на Си++ и Си — правил, которые, надеюсь, уберегут вас от
неприятностей, если вы будете их использовать с самого начала. Хотя
большинство из приводимых здесь правил применимы равно при
программировании как на Си, так и на Си++, я включил много материала,
относящегося лишь к миру Си++ и сконцентрированного по мере
возможности в заключительном разделе. Если вы программируете лишь
на Си, то просто игнорируйте материал по Си++, встречающийся вам в
более ранних разделах.


занимательная книжка


 
Димитрий ©   (2005-08-31 21:36) [15]

1. Дана матрица N x M случайным образом заполненная нулями и единицами. Заменить на двойки все единицы, образующие замкнутые области.
Пример:
из
10010
00101
00101
10010

получить
10020
00202
00202
10020

2. Дана матрица N x M заполненная целыми числами слева направо и сверху вниз, пример:
1 2 3 4
5 6 7 8
требуется переставить элементы, чтобы получилась матрица, заполненная сверху вниз и слева направо, пример:
1 3 5 7
2 4 6 8


 
Mystic ©   (2005-08-31 21:46) [16]

Напишу программу, которая бы в го играла ;)


 
Kerk ©   (2005-08-31 21:53) [17]

Mystic ©   (31.08.05 21:46) [16]

У меня кстати есть делфийские исходники такой проги.


 
palva ©   (2005-08-31 21:55) [18]

БарЛог ©   (31.08.05 21:23) [12]
> for (i=0;i<=3;i++)
for (i=0;i<=4;i++)


 
БарЛог ©   (2005-08-31 22:03) [19]

Димитрий ©   (31.08.05 21:36) [15]

#include <stdio.h>
main()
{
int m,n;
/*тут задаем m= ; n= ;*/
int mas[m][n],i,j,i2,j2,k;

/*сначала заполним массив*/
for (j=0; j<=n-1; j++)
 for (i=0; i<=m-1; i++)
    mas[i,j]=i+j;  /*хоть убейте - не помню, как к элементу массива обратиться, вроде так*/

/*теперь сама сортировка*/
for (j=0; j<=n-1; j++)
 for (i=0; i<=m-1; i++)
   for (j2=0; j2<=m-1; j2++)
     for (i2=0; i2<=n-1; i2++)
       {
         k=mas[i,j];
         mas[i,j]=mas[i2,j2];
         mas[i2,j2]=k;
       }
}

Четыре фора, конечно, на лицо... Но сразу почему-то ничего в голову не приходит :(
Да и спустя некоторое время не приходит :(
Над первым надо слишком много думать :(
Если есть алгоритмы - скинь плиз.

palva ©   (31.08.05 21:55) [18]
> for (i=0;i<=4;i++)
Кажись, цикл выполняется, пока условие2 истинно (i=4 нам не надо) - нумерация элементов массива с нуля. Разве не так?


 
БарЛог ©   (2005-08-31 22:04) [20]

Mystic ©   (31.08.05 21:46) [16]
Что такое го - напомни плиз.


 
Димитрий ©   (2005-08-31 22:16) [21]


> БарЛог ©   (31.08.05 22:03) [19]


> Если есть алгоритмы - скинь плиз.

Да где-то валялись, правда на Java :)


 
palva ©   (2005-08-31 22:21) [22]

> i=4 нам не надо
А чтобы поменять местами 4-й и 5-й элементы? Или я чего-то не понял?


 
БарЛог ©   (2005-08-31 22:30) [23]

Димитрий ©   (31.08.05 22:16) [21]
ды хоть на ассемблере - разобрать то можно (ну на асме, конечно, не надо :) )

palva ©   (31.08.05 22:21) [22]
Да, большое спасибо! Ошибка действительно есть. Извиняюсь, что сам запутался и вас запутал :)


 
Agent13 ©   (2005-08-31 23:16) [24]


> Kerk ©   (31.08.05 21:53) [17]
> Mystic ©   (31.08.05 21:46) [16]
>
> У меня кстати есть делфийские исходники такой проги.

Да ну? А я где-то читал, что в го компьютер заиграет ещё не скоро.


 
Канадец   (2005-08-31 23:38) [25]

БарЛог ©   (31.08.05 22:03) [19]

int m,n;
/*тут задаем m= ; n= ;*/
int mas[m][n]...


Лихо ты объявил статический массивчик в С. Смотри, погонят тебя с экзамена за такие штучки ;)

Как мимнимум так надо

const int m =3,n=5; // Whatevere dimension you have
int mas[m][n]...


И вот это

mas[i,j]

меняй на это

mas[i][j]

P.S.
Логику не проверял


 
Kerk ©   (2005-08-31 23:52) [26]

Agent13 ©   (31.08.05 23:16) [24]
Да ну? А я где-то читал, что в го компьютер заиграет ещё не скоро.


Он играет давно уже. Но достаточно серьезного игрока обыгрывать не скоро еще начнет.


 
Наиль ©   (2005-09-01 02:48) [27]

Своим студентам даю такую задачу.
В результате перестановок N цифр получается N! (факториал) комбинаций.
Например. Для 3 цифр: 123, 132, 213, 231, 312, 321. Всего 1*2*3=6 комбинаций. Найти все комбинации для 5 цифр (120 шт.) по возрастанию (т.е. без сортировки).

Думаю, в данном случае, можно в любом порядке.


 
Джо ©   (2005-09-01 04:59) [28]


>  [27] Наиль ©   (01.09.05 02:48)

По-моему, условие задачи сформулировано некорректно.

> В результате перестановок N цифр получается N! (факториал)
> комбинаций

Такому условию удовлетворяет также и "111", "222", "333". И даже: "456", "890".


 
БарЛог ©   (2005-09-01 08:19) [29]

Канадец   (31.08.05 23:38) [25]
Спасибо.
Про константы я думал, но забыл как их обьявлять :(
Про массивы тож забыл :(

Наиль ©   (01.09.05 02:48) [27]
>  Найти все комбинации для...
Кажется, это перестановками и называется.


 
Igorek ©   (2005-09-01 09:49) [30]

1.
int i = 0;
i += i+++++i;

чему равно i?

2.напиши выражение min(x,y,z)


 
palva ©   (2005-09-01 11:13) [31]

С подколкой:

char c1;
char c2[5];
char c3[5,5];
char c4[] = "***";

Чему равно
1. sizeof(c1)
2. sizeof(c2)
3. sizeof(c3)
4. sizeof(c4)


 
default ©   (2005-09-01 11:19) [32]

докажи гипотезу 3x+1 и беги на ближайший матфакультет для написания кандидатской
нужно доказать что при любом натуральном x следующий код завершит работу

while x <> 1 do
 if Odd(x) then x := 3 * x + 1
   else X := x div 2


 
alpet ©   (2005-09-01 11:31) [33]

С форума wasm.ru: написать программу вычисляющую все возможные состояния кубика рубика размером 2x2 (если есть желание - с любым кол-вом размерностей, но это весьма сложно).

default ©   (01.09.05 11:19) [32]

Он завершит, но это зависит не от алгоритма, а от разрядности числа x (наиболее долго будет с int64, а если div заменить на / то с Extended). Реальная же проверка должна быть на больших(очень) числах, что кстати тоже интересная задача - написать к примеру на Си алгоритм умножения 256-байтных чисел.


 
Mystic ©   (2005-09-01 11:40) [34]

Правила:
http://go.hobby.ru/school-02.htm

Тут с объяснениями и задачками:
http://www.playgo.to/interactive/russian/

Тут программка для разминки на поле размером 9x9 (оригинал 19x19)
Позволяет понять правила :)
http://www.kiseido.com/download.htm

Страничка, посвященная игре:
http://go.hobby.ru/

Тут можно порешать задачки:
25-15 кю: http://gobase.org/studying/problems/academy/?lev=1&off=0
15-5 кю: http://gobase.org/studying/problems/academy/?lev=2&off=0
5-1 кю: http://gobase.org/studying/problems/academy/?lev=3&off=0
1 кю - 4 дан: http://gobase.org/studying/problems/academy/?lev=4&off=0

Да, если напишешь программу, обыграющего профессионала, то получишь небольшой приз в размере десяти мегадолларов :) Есть призы поскромнее для более скромных достижений.

>>> У меня кстати есть делфийские исходники такой проги.
Можешь поделиться?


 
БарЛог ©   (2005-09-02 12:51) [35]

Igorek ©   (01.09.05 09:49) [30]
1. 1 байт
2. 5 байт + длина массива тоже наверно хранится = 6 байт
3. 5*5 байт + 2 байта (размерность массива) = 27 байт
4. А так разве можно? :)

Прав?


 
Тульский ©   (2005-09-02 13:08) [36]


> Димитрий ©   (31.08.05 21:36) [15]

Задача №1 это фрагмент реализации игры Го. "Точки" по-русски.


 
Mystic ©   (2005-09-02 13:56) [37]

> "Точки" по-русски.

Точки это далеко не го. Точки это скорее всего вариант атари-го, да и то нечеткий.


 
БарЛог ©   (2005-09-02 14:46) [38]

alpet ©   (01.09.05 11:31) [33]
> написать к примеру на Си алгоритм умножения 256-байтных чисел.
Не совсем понял... это числа, которые max=(8^256)-1 ?


 
wal ©   (2005-09-02 15:08) [39]


> Не совсем понял... это числа, которые max=(8^256)-1 ?
Это [0..256^256-1]


 
Lamer@fools.ua ©   (2005-09-02 16:00) [40]

>>БарЛог ©   (02.09.05 12:51) [35]

>1. 1 байт
2. 5 байт + длина массива тоже наверно хранится = 6 байт
3. 5*5 байт + 2 байта (размерность массива) = 27 байт
4. А так разве можно? :)


1. Да.
2. Нет.
3. Нет.
4. Можно.



Страницы: 1 2 вся ветка

Текущий архив: 2005.09.25;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.047 c
1-1125474099
lock
2005-08-31 11:41
2005.09.25
TBitmap в TSream


1-1125317950
Cherrex
2005-08-29 16:19
2005.09.25
Как динамически добавить компонент на форму


2-1124269008
Muchacho
2005-08-17 12:56
2005.09.25
фильтр


3-1123590653
Русланка
2005-08-09 16:30
2005.09.25
При формировании запроса к Access как узнать


14-1125277977
Учащийся
2005-08-29 05:12
2005.09.25
Как в фотошопе нарисовать элипс толщиной в пиксель?