Страница 3 из 3 ПерваяПервая 123
Показано с 31 по 41 из 41

Тема: Программирование на C\C++

  1. #31
    Участник
      Народный модератор раздела "Человек и Общество" 2008, Лучший модератор раздела "Человек и Общество" 2009
    Аватар для Jaratar
    Регистрация
    14.08.2006
    Адрес
    Россия
    Сообщений
    485
    Спасибо
    я - 49; мне - 55
    Цитата Сообщение от Света21
    Помогите пожалуйста написать программу!!! Первый игрок сообщает какую- нибудь дату января. Каждый игрок на своем ходе называет поле позднюю дату, увеличивая либо календарную дату в числе, либо месяц, но не то и другое сразу. Первый, кто доберется до 31 декабря, выиграет. Составьте программу для этой игры, где один из играков - компьютер.
    Могу предложить такой вариант решения. Как и было в условии, сначала игрок вводит дату января, а потом он и компьютер поочереодно увеличивают на один либо день, либо месяц. Игрок кнопками выбирает увеличивать день или месяц кнопками 0 и 1, а компьютер случайным образом. Когда уже декабрь, то можно увеличивать только дни.

    В программе дни и месяцы определяются с помощью глобальных переменных (для этого обращение из функций на всякий случай происходит при помощью их повторного объявления с помощью extern). Такой способ (с использованием глобальных переменных) не очень хороший, но для выразительности и упрощения программы сделан он. Для структуризации программы в ней используются функции вывода текущей даты, ход игрока, ход компьютера, функция начала нового месяца, функция проверки наличия победы.

    Для вашего удобства текст программы приведён с комментариями и без комментариев. Тот, что с комментариями лучше смотреть в редакторе, он должен немного лучше отображаться.

    Пишите, если что.

    Код:
    #include <iostream>
    
    int day = 1;
    int month = 1;
    int isPlayerWon = 0;
    int isCompWon = 0;
    
    void Show(); 
    void whatInc(); 
    void checkMonth();  
    void compTurn();
    int checkWon();
    
    void main()
    {
    	
    	do
    	{
    		cout<<"Lets start a game! Please type in the date of January. (1-31)"<<endl;
    		cin>>day;
    	}
    	while ((day < 1) | (day >31)); 
    	
    	do
    	{			
    		Show();
    		compTurn();
    		if (checkWon() == 1)
    		{
    			isCompWon = 1; 
    			break;
    		}
    		checkMonth();
    		
    		Show();
    		whatInc();
    		if (checkWon() == 1)
    		{
    			isPlayerWon = 1;
    			break;
    		}		
    		checkMonth();		
    	}
    	while (isPlayerWon==0 && isCompWon==0);  
    	
    	Show();
    	if (isPlayerWon == 1) cout<<"The Player has won!"<<endl;
    	else cout<<"The Computer has won!"<<endl;
    }
    
    
    void Show()
    {
    	extern int day; 
    	extern int month;
    	
    	cout<<"----------"<<endl;
    	cout<<day<<" ";
    	switch (month) {
    		case 1: cout<<"January"<<endl; break;	
    		case 2: cout<<"February"<<endl; break;
    		case 3: cout<<"March"<<endl; break;
    		case 4: cout<<"April"<<endl; break;
    		case 5: cout<<"May"<<endl; break;
    		case 6: cout<<"June"<<endl; break;
    		case 7: cout<<"July"<<endl; break;
    		case 8: cout<<"August"<<endl; break;
    		case 9: cout<<"September"<<endl; break;
    		case 10: cout<<"October"<<endl; break;
    		case 11: cout<<"November"<<endl; break;
    		case 12: cout<<"December"<<endl; break;
    	}
    	cout<<"----------"<<endl;
    }
    
    void whatInc()
    {
    	extern int day;
    	extern int month;
    	int dom;
    	
    	if (month == 12)
    	{
    		do
    		{
    			cout<<"December! You can only increase days(0)"<<endl;
    			cin>>dom;
    		}
    		while(dom != 0);
    	}
    	else
    	{
    		cout<<"Increase days(0) or months(1)?"<<endl;
    		cin>>dom;	
    	}
    		
    	if (dom == 0)
    	{
    		day++;
    		cout<<"The Player has increased days"<<endl;
    	}
    	else 
    	{
    		month++;
    		cout<<"The Player has increased months"<<endl;
    	}
    }
    
    void checkMonth() 
    {
    	extern int day;
    	extern int month;
    	
    	if ((day == 29) && (month == 2)) {
    		day = 1;
    		month++;
    	}
    	
    	if ((day == 32) && ((month == 1)
    						 | (month == 3)
    						 | (month == 5)
    						 | (month == 7)
    						 | (month == 8)
    						 | (month == 10)
    						 | (month == 12))) {
    		day = 1;
    		month++;
    	}
    
    	if ((day == 31) && ((month == 4) | 								
    								(month == 6) | 
    								(month == 9) | 
    								(month == 11)))	{
    		day = 1;
    		month++;
    	}
    }
    
    	
    void compTurn()
    {
    	extern int day;
    	extern int month;
    	int dom = 0;
    	
    	if (month == 12)
    	{
    		day++;
    		cout<<"The computer has increased days"<<endl;
    	}
    	else	
    	{
    		dom = rand()%2;
    		if (dom == 0) 
    		{
    			day++;
    			cout<<"The computer has increased days"<<endl;
    		}
    		else 
    		{
    			month++;
    			cout<<"The computer has increased months"<<endl;
    		}
    	}
    }
    
    
    int checkWon()
    {
    	extern int day;
    	extern int month;
    	if ((day==31) && (month==12))
    		return 1;
    	else 
    		return 0;
    }
    Код:
    #include <iostream>
    
    //--------Глобальные переменные
    
    	int day = 1; //текущий день
    	int month = 1; //текущий месяц
    	int isPlayerWon = 0; // Равно 1, если выиграл игрок
    	int isCompWon = 0; /*Равно 1, если выиграл компьютер
    							 (нужно для вывода сообщения)	*/
    
    //-------Объявление вспомогательных функций, их описание внизу программы
    
    void Show(); //функция отображает день и месяц
    
    void whatInc();  //функция позволяет игроку делать ход
    
    void checkMonth();  /*проверяет, не пора ли увеличит месяц, если
    							если число дней превысило 30, 31 или 28 (в феврале)*/
    
    void compTurn();  //ходит за компьютера
    
    int checkWon(); /* функция проверяет, не достигнуто ли 31 декабря,
    						если достигнуто, становится равной (возвращат) 1,
    						если нет - 0 */
    
    //---------------Основная программа
    void main()
    {
    	
    	do
    	{
    		cout<<"Lets start a game! Please type in the date of January. (1-31)"<<endl;
    		cin>>day;
    	}
    	while ((day < 1) | (day >31));  /*начинаем игру, игроку надо ввести
    						число января - от 1 до 31. Если ввести больше или меньше,
    						то попросят ввести опять */
    	
    	do /*использум цикл do{ }while с постусловием,
    		игрок с компьютером ходят, пока один не достигнет 31 декабря*/
    	{	
    		//так как число выбирал игрок, первым ходит компьютер			
    		Show(); //покажем, какая дата сейчас	
    		compTurn(); //потом компьютер ходит
    		if (checkWon() == 1) //если он выиграл, то прекращаем цикл do while
    		{
    			isCompWon = 1; 
    			break;
    		}
    		checkMonth(); //под конец проверим числа месяца
    		
    		Show();  //теперь ход игрока, почти то же самое
    		whatInc();  //только другая процедура хода
    		if (checkWon() == 1)
    		{
    			isPlayerWon = 1;
    			break;
    		}		
    		checkMonth();		
    	}
    	while (isPlayerWon==0 && isCompWon==0);  /*цикл работает, пока
    						один не победит - хотя это излишне, так как 
    						в цикле уже есть условие для выхода - вместо этого
    						здесь можно бы было сделать возможность выхода до победы*/
    	
    	Show(); //показать дату 31 декабря
    	/*назвать победителя*/
    	if (isPlayerWon == 1) cout<<"The Player has won!"<<endl;
    	else cout<<"The Computer has won!"<<endl;
    	}
    
    //--------------Вспомогательные функции
    
    void Show() //показывает дату
    {
    	extern int day; /*обращение к глобальным переменным из функции,
    							надо использовать extern*/
    	extern int month;
    	
    	//пишем день, месяц c числового значения заменяем на January, February и т.д.
    	cout<<"----------"<<endl;
    	cout<<day<<" ";
    	switch (month) {
    		case 1: cout<<"January"<<endl; break;	
    		case 2: cout<<"February"<<endl; break;
    		case 3: cout<<"March"<<endl; break;
    		case 4: cout<<"April"<<endl; break;
    		case 5: cout<<"May"<<endl; break;
    		case 6: cout<<"June"<<endl; break;
    		case 7: cout<<"July"<<endl; break;
    		case 8: cout<<"August"<<endl; break;
    		case 9: cout<<"September"<<endl; break;
    		case 10: cout<<"October"<<endl; break;
    		case 11: cout<<"November"<<endl; break;
    		case 12: cout<<"December"<<endl; break;
    	}
    	cout<<"----------"<<endl;
    }
    
    void whatInc() //ход игрока
    {
    	extern int day;
    	extern int month;
    	int dom; /*dom - сокращение Day Or Month  - будет показыват,
    				что увеличивать, дни или месяцы*/
    	
    	if (month == 12) //если уже декабрь, увеличивать можно только дни
    	{
    		do
    		{
    			cout<<"December! You can only increase days(0)"<<endl;
    			cin>>dom;
    		}
    		while(dom != 0); //пока не выбран дни (0), программа будет спрашивать
    	}
    	else //если не декабрь, пусть игрок выбирает
    	{
    		cout<<"Increase days(0) or months(1)?"<<endl;
    		cin>>dom;	
    	}
    		
    	if (dom == 0) //если ноль - увеличиваем день, если что-то другле, то месяц
    	{
    		day++;
    		cout<<"The Player has increased days"<<endl;
    	}
    	else 
    	{
    		month++;
    		cout<<"The Player has increased months"<<endl;
    	}
    }
    
    void checkMonth() /*функция, проверяет, не надо ли перейти на новый
    							месяц, если число уже 30, 31 или 28 (для февраля)*/
    {
    	extern int day;
    	extern int month;
    	
    	/*если произошло так, что уже 29 февраля, то делаем первое число
    	следующего месяца*/
    	if ((day == 29) && (month == 2)) {
    		day = 1;
    		month++; //увеичить на один
    	}
    	
    	//для других месяцев также, только с другими условиями
    	if ((day == 32) && ((month == 1)
    						 | (month == 3)
    						 | (month == 5)
    						 | (month == 7)
    						 | (month == 8)
    						 | (month == 10)
    						 | (month == 12))) {
    		day = 1;
    		month++;
    	}
    
    	if ((day == 31) && ((month == 4) | 								
    								(month == 6) | 
    								(month == 9) | 
    								(month == 11)))	{
    		day = 1;
    		month++;
    	}
    }
    
    	
    void compTurn() //процедура хода компьютера с использованием функции rand()
    {
    	extern int day;
    	extern int month;
    	int dom = 0;
    	
    	if (month == 12) //если декабрь, то компьютер только дни
    	{
    		day++;
    		cout<<"The computer has increased days"<<endl;
    	}
    	else	
    	{
    		dom = rand()%2;  //выбор одного из двух - 0 или 1	
    		if (dom == 0) 
    		{
    			day++;
    			cout<<"The computer has increased days"<<endl;
    		}
    		else 
    		{
    			month++;
    			cout<<"The computer has increased months"<<endl;
    		}
    	}
    }
    
    
    int checkWon()  //становится равна 1, если уже 31 декабря
    {
    	extern int day;
    	extern int month;
    	if ((day==31) && (month==12))
    		return 1;
    	else 
    		return 0;
    }
    If there were no clouds, we should not enjoy the Sun

  2. #32
    Юлика
    Гость
    Помогите отладить программу.
    Читать дальше...

    #include "stdafx.h"
    #include "Sort.h"
    #include "SortDoc.h"
    #include "SortView.h"
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[] = __FILE__;
    #endif
    //объявление глобальных переменных
    int mas[20]={30,5,17,8,1,14,12,3,77,2,45,89,33,21,6}, mas2[20], kol=15, count=0;
    CString str;
    bool sort=false;
    int metod=0;
    //1- quicksort
    //2- shell
    //3- пузырька
    /////////////////////////////////////////////////////////////////////////////
    // CSortView
    IMPLEMENT_DYNCREATE(CSortView, CView)
    BEGIN_MESSAGE_MAP(CSortView, CView)
    //{{AFX_MSG_MAP(CSortView)
    ON_COMMAND(ID_QUICK, OnQuick)
    ON_COMMAND(ID_PUZIROK, OnPuzirok)
    ON_COMMAND(ID_SHELL, OnShell)
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()
    /////////////////////////////////////////////////////////////////////////////
    // CSortView construction/destruction
    CSortView::CSortView()
    {
    // TODO: add construction code here
    }
    CSortView::~CSortView()
    {
    }
    BOOL CSortView::PreCreateWindow(CREATESTRUCT& cs)
    {
    // TODO: Modify the Window class or styles here by modifying
    // the CREATESTRUCT cs
    return CView::PreCreateWindow(cs);
    }
    /////////////////////////////////////////////////////////////////////////////
    // CSortView drawing
    //функция вывода данных на экран
    void CSortView::OnDraw(CDC* pDC)
    {
    CSortDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    // TODO: add draw code for native data here
    int i;
    //выводим исходный массив на экран
    for(i=0;i<kol;i++)
    {
    str.Format("%d,",mas[i]);//формирование строки
    pDC->TextOut(10+i*20,10,str);//вывод на экран
    }
    //если был выбран какой-нибудь метод сортировки
    if(sort)
    {
    if(metod==1)//если выбран Quicksort
    pDC->TextOut(10,40,"Обменная сортировка с разделением (quicksort)");//вывод строки на экран
    if(metod==2)//если выбран Shell
    pDC->TextOut(10,40,"Метод Шелла");//вывод строки на экран
    if(metod==3)//если выбран Bubble
    pDC->TextOut(10,40,"Метод прямого обмена (Пузырька)");//вывод строки на экран
    //выводим отсортированный массив
    for(i=0;i<kol;i++)
    {
    str.Format("%d,",mas2[i]);//формирование строки
    pDC->TextOut(10+i*20,80,str);//вывод строки на экран
    }
    str.Format("Количество перестановок в нашем случае: %d",count);//формирование строки
    pDC->TextOut(10,110,str);//вывод строки на экран
    if(metod==3)//если был выбран метод "Пузырька"
    {
    str.Format("Максимальное количество перестановок для массива из %d элементов методом 'Пузырька': %d",kol, kol*(kol-1)/2);//формирование строки
    pDC->TextOut(10,140,str);//вывод строки на экран
    }
    }
    }
    /////////////////////////////////////////////////////////////////////////////
    // CSortView diagnostics
    #ifdef _DEBUG
    void CSortView::AssertValid() const
    {
    CView::AssertValid();
    }
    void CSortView:ump(CDumpContext& dc) const
    {
    CView:ump(dc);
    }
    CSortDoc* CSortView::GetDocument() // non-debug version is inline
    {
    ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CSortDoc)));
    return (CSortDoc*)m_pDocument;
    }
    #endif //_DEBUG
    /////////////////////////////////////////////////////////////////////////////
    // CSortView message handlers
    //при выборе сортировки Quicksort
    void CSortView::OnQuick()
    {
    //объявление локальных переменных
    sort=true;
    metod=1;
    int i;
    count=0;
    for(i=0;i<kol;i++)
    {
    mas2[i]=mas[i];
    }
    quicksort(0, kol-1);//вызов функции quicksort
    Invalidate(true);//перерисовка содержимого окна
    }
    //при выборе сортировки Shell
    void CSortView::OnShell()
    {
    //объявление локальных переменных
    sort=true;
    metod=2;
    int ii,t=5,i,j, k, s, m, h[6], x;
    count=0;
    for(ii=0;ii<kol;ii++)
    {
    mas2[ii]=mas[ii];
    }
    h[1]=9; h[2]=5; h[3]=3; h[4]=2; h[5]=1;
    ////////////////////////////////////////////
    АЛГОРИТМ

    for(m=1;m<=t;m++)
    {
    k=h[m];
    s=-k;
    for(i=k+1; i<=kol;i++)
    {
    x=mas2[i];
    j=i-k;
    while (x<mas2[j] && j<kol)
    {
    mas2[j+k]=mas2[j];
    j=j-k;
    }
    mas2[j+k]=x;
    count++;
    }
    }
    x=mas2[0];
    mas2[0]=mas2[1];
    mas2[1]=x;
    ////////////////////////////////////////////
    Invalidate(true);//перерисовка содержимого окна
    }
    //при выборе сортировки Bubble
    void CSortView::OnPuzirok()
    {
    //объявление локальных переменных
    int dop;
    bool end;
    count=0;
    sort=true;
    metod=3;
    int i, j;
    for(i=0;i<kol;i++)
    {
    mas2[i]=mas[i];
    }
    ////////////////////////////////////////////
    //АЛГОРИТМ
    for(i=0;i<kol;i++)
    {
    end=true;
    for(j=i+1;j<kol;j++)
    {
    if(mas2[i]>mas2[j])
    {
    dop=mas2[i];
    mas2[i]=mas2[j];
    mas2[j]=dop;
    end=false;
    count++;
    }
    }
    if(end==true) break;
    }
    /////////////////////////////////////////////
    Invalidate(true);//перерисовка содержимого окна
    }
    //функция быстрого поиска
    void CSortView::quicksort(int l, int r)
    {
    int i, j;
    i=l;j=r;
    {
    part(l, r, i, j);
    if(i<r)quicksort(i, r);// переход к сортировке левой части
    if(j>l)quicksort(l, j);// переход к сортировке правой части
    }
    }
    //функция поиска по частям
    void CSortView:art(int l, int r, int &i, int &j)
    {
    int x, dop;
    i=l;
    j=r;
    x=(l+r)/2;
    do
    {
    while(mas2[i]<mas2[x])
    i++;
    while(mas2[j]>mas2[x])
    j--;
    if(i<=j)
    {
    dop=mas2[i];
    mas2[i]=mas2[j];
    mas2[j]=dop;
    i++;j--;count++;
    }
    }
    while(i<j);
    }

  3. #33
    Участник
      Народный модератор раздела "Человек и Общество" 2008, Лучший модератор раздела "Человек и Общество" 2009
    Аватар для Jaratar
    Регистрация
    14.08.2006
    Адрес
    Россия
    Сообщений
    485
    Спасибо
    я - 49; мне - 55
    Юлика
    Здравствуйте! =)

    Эта программа использует заголовочные файлы

    #include "stdafx.h"
    #include "Sort.h"
    #include "SortDoc.h"
    #include "SortView.h"

    Чтобы начать её отлаживать и запустить программу, надо располагать и ими. Иначе будет сообщение об ошибке.
    If there were no clouds, we should not enjoy the Sun

  4. #34
    Юлика
    Гость
    Цитата Сообщение от Jaratar Посмотреть сообщение
    Юлика
    Здравствуйте! =)

    Эта программа использует заголовочные файлы

    #include "stdafx.h"
    #include "Sort.h"
    #include "SortDoc.h"
    #include "SortView.h"

    Чтобы начать её отлаживать и запустить программу, надо располагать и ими. Иначе будет сообщение об ошибке.
    Доброе утро!-) Вы извините меня, но я этом зелёная, как сделать так чтобы располагать ими? Помогите, если не трудно...

  5. #35
    Администратор, Старший модератор
    Лучший Старший модератор miXei.ru 2010
      Лучший модератор раздела "Информационные Технологии" 2008, Лучший консультант 2009, Самый полезный участник раздела "Компьютерные Игры" 2009, Лучший консультант 2009
    Аватар для CHeL
    Регистрация
    10.09.2004
    Адрес
    Питер, ЮЗ
    Сообщений
    4,286
    Записей в блоге
    4
    Спасибо
    я - 636; мне - 567
    Юлика
    Просьба использовать тэг MORE при больших сообщениях!

  6. #36
    Участник
      Народный модератор раздела "Человек и Общество" 2008, Лучший модератор раздела "Человек и Общество" 2009
    Аватар для Jaratar
    Регистрация
    14.08.2006
    Адрес
    Россия
    Сообщений
    485
    Спасибо
    я - 49; мне - 55
    Юлика
    Дело в том, что при составлении программ на C/C++ часто применяют заголовочные файлы. В этих файлах обычно отдельно описываются функции, классы, которые применяются в программе. Таким образом получается, что программа разбита сразу по нескольким файлам. Сделанно это в общем, чтобы упорядочить код, облегчить понимание программы.

    В той программе, которую привели вы, есть только код основного файла, но нет заголовочных - об этом можно судить по тому, что в начале текста стоят директивы #include с именами тех самых заголовочных файлов. Кроме stdafx.h - это стандартный заголовочный файл.

    Насчёт того, как бы их разобыть - если эта программа уже где-то есть в интернете, можно попробовать найти её вместе с ними. Потому что если не знать, что было в этих файлах и писать их заново, то востановить программу будет довольно трудно.
    If there were no clouds, we should not enjoy the Sun

  7. #37
    Почетный участник Аватар для Mice
    Регистрация
    25.08.2009
    Адрес
    Берлин
    Сообщений
    719
    Записей в блоге
    157
    Спасибо
    я - 213; мне - 137
    Написала на си плюс плюс достаточно для меня симпатичное во всех отношениях консольное приложение. Отладила его, до ума довела. Вот скажите, а можно ли для него как-то все же графическую оболочку сделать? И вообще, как это на сишке - то делается? В Java, например, я больше оконные пишу. А вот в C++ никогда раньше таким не занималась. Есть у кого советы по этому поводу?

  8. #38
    Участник
      Народный модератор раздела "Человек и Общество" 2008, Лучший модератор раздела "Человек и Общество" 2009
    Аватар для Jaratar
    Регистрация
    14.08.2006
    Адрес
    Россия
    Сообщений
    485
    Спасибо
    я - 49; мне - 55
    Mice
    Да, существуют специальные инсрументы для разработки оконных приложений под C++. Так называемые интегрированные среды разработки (Integrated development environment или IDE). Они помимо текстового редактора включают в себя средства визуального программирования, что позволяет быстро редактировать интерфейс приложения. Можно, например, быстро сделать форму, с помощью мыши разместить на ней кнопки и надписи... Указать, какой код будет выполнять при том или ином действии (нажатии кнопки, или изменении размеров окна, или наведении курсора на определённое место окна и т.д.)... Для C++ наиболее распространённой средой считается Microsoft Visual Studio. Также есть Borland C++ Builder, Borland Developer Studio... И некоторые другие, как например Dev-C++.
    If there were no clouds, we should not enjoy the Sun

  9. #39
    Почетный участник Аватар для Mice
    Регистрация
    25.08.2009
    Адрес
    Берлин
    Сообщений
    719
    Записей в блоге
    157
    Спасибо
    я - 213; мне - 137
    как раз в Visual Studio я все это дело и наклепала. Но, покопавшись там, нашла только нечто очень мне не понравившееся, т.к. простой вывод пустого окна на экран в этом случае занял бы строк триста кода.
    Где в программе ( или может в языке, т.к. я пыталась полазить по подключаемым с помощью include файлам ) находятся эти самые инструменты?

  10. #40
    Участник
      Народный модератор раздела "Человек и Общество" 2008, Лучший модератор раздела "Человек и Общество" 2009
    Аватар для Jaratar
    Регистрация
    14.08.2006
    Адрес
    Россия
    Сообщений
    485
    Спасибо
    я - 49; мне - 55
    Mice
    Эти инструменты интерактивны, т.е. не придётся делать интерфейс с помощью написания кода вручную. Чтобы сделать такое приложение, надо выбрать создание нового проекта. И из перечисленных вариантов выбрать не консольное, а оконное приложение. Потом, если там заранее не появится готовая форма, добавить в него форму и расположить элементы интерфейса. Простите что в общих словах, так как не знаю какая у вас версия Visual Studio, но мне кажется, вы разберётесь. В крайнем случае, можете поискать в интернете страницы с подобным описанием алгоритма этого процесса. Наберите, например "создание оконного приложения в Visual Studio". Наверняка вы найдёте что-нибудь, может даже с иллюстрациями...
    If there were no clouds, we should not enjoy the Sun

  11. Пользователь сказал cпасибо:


  12. #41
    Почетный участник Аватар для Mice
    Регистрация
    25.08.2009
    Адрес
    Берлин
    Сообщений
    719
    Записей в блоге
    157
    Спасибо
    я - 213; мне - 137
    ой, и действительно! Надо было в нете полазить! Спасибо вам большое, а то я как-то так про это приложение вспоминала, думала.. но у самой бы руки не дошли. А теперь обязательно сделаю. )) Еще раз спасибо

Страница 3 из 3 ПерваяПервая 123

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •