kidoz А в чём пишем? можно ли использовать коня (conio.h)? - там удобней будет, зато и либу выучишь
Если, нельзя - то слушаемся progn.
В geany, gcc 4.4.3. Задача из самоучителя, использовать можно if, if...else, while, scanf, printf. Код, который я запостил, это решение предыдущей, где надо нарисовать квадрат из звездочек с произвольными размерами стороны вводимых с клавиатуры.
Добавлено спустя 28 минут 19 секунд: Может и не очень красиво, но работает.
if ( y == 0 ) { while ( i != x ) { printf( "*" ); i++; } }
else if ( y == ( x -1 ) ) { while ( i != x ) { printf( "*" ); i++; } } else { while ( i != x ) { if ( i == 0 ) printf( "*" ); else if ( i == ( x - 1 ) ) printf( "*" ); else printf( " " ); i++; } }
kidoz подумай какое из этих условий подойдет чтобы нарисовать 2 две стороны квадрата 1) y == 1 && y == x 2) y == 0 && y == x-1 3) y == 0 || y == x-1 4) y == 0 || y == x
как его дополнить чтобы рисовалось еще две надеюсь все же догадаешься сам
kidoz подумай какое из этих условий подойдет чтобы нарисовать 2 две стороны квадрата 1) y == 1 && y == x 2) y == 0 && y == x-1 3) y == 0 || y == x-1 4) y == 0 || y == x
как его дополнить чтобы рисовалось еще две надеюсь все же догадаешься сам
Member
Статус: Не в сети Регистрация: 10.12.2007 Откуда: Санкт-Петербург
просто ругается на то, что "невозможно создать экземпляр абстрактного класса из-за следующих членов:" а далее указывает на виртуальные методы, вот например на virtual void Set_Number(int i)=0;
_________________ Семь бед, один Reset. 95, 98 - это количество багов. В пpоцентах... DCN - наше все
Advanced member
Статус: Не в сети Регистрация: 30.08.2003 Откуда: Санкт-Петербург
kidoz Во-первых, использовать цикл for. Это логичнее. Во-вторых, нужно два вложенных цикла по переменной-счетчику от 0 до X. Во внутреннем цикле печаете * в случае индекс=0 или индекс=размерность квадрата. Также обратите внимание, что внутренний цикл должен полностью пропечатать две строки *. В случае когда внешний индекс = 0 или когда индекс внешнего цикла = размерности квадрата. Во внешнем цикле - по окончанию каждой строчки - перевод на новую строку.
_________________ {:€ дед в законе :-) нородный окодемег почетный пользователь OpenSuSE 11.3 Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad
kidoz Во-первых, использовать цикл for. Это логичнее. Во-вторых, нужно два вложенных цикла по переменной-счетчику от 0 до X. Во внутреннем цикле печаете * в случае индекс=0 или индекс=размерность квадрата. Также обратите внимание, что внутренний цикл должен полностью пропечатать две строки *. В случае когда внешний индекс = 0 или когда индекс внешнего цикла = размерности квадрата. Во внешнем цикле - по окончанию каждой строчки - перевод на новую строку.
Это упражнение для тренировки и закрепления уже изученного материала. for в следующей главе. Мой вариант вполне рабочий.
Member
Статус: Не в сети Регистрация: 10.12.2007 Откуда: Санкт-Петербург
еще раз всем добрый вечер) Есть некоторый абстрактный класс и 3 классa, который наследует от него т.е class CCar : public CVehicle, class CPlane:public CVehicle, class CShip:public CVehicle Необходимо создать список объектов этих классов. Если бы был один объект, то было бы все так
Код:
CVehicle *object; object=new CCar; ...
а тут нужен список....Дело не в том, что я не могу создать список , а в том, что я не очень представляю как все это записать... Если бы не было никаких классов, то можно было бы так:
Код:
struct List{ int elements; struct List *next; }
и тд а тут затык
_________________ Семь бед, один Reset. 95, 98 - это количество багов. В пpоцентах... DCN - наше все
Member
Статус: Не в сети Регистрация: 15.02.2009 Откуда: Лангепас
manya писал(а):
еще раз всем добрый вечер) Есть некоторый абстрактный класс и 3 классa, который наследует от него т.е class CCar : public CVehicle, class CPlane:public CVehicle, class CShip:public CVehicle Необходимо создать список объектов этих классов }
Ох... Для этого и созданы наследование и полиморфизм - основы объектного программирования.
Необходимо создавать список базового (который часто бывает абстрактным классом), и просто указателям на объекты присваивать реальные экземпляры дочерних классов.
Например:
Код:
#include <stdio.h> class Base { public: void fun(void)=0; }
class A : public Base { public: void fun(void){printf("A");}; } class B : public Base { public: void fun(void){printf("B);}; }
void main(....) {int i; Base *List[5];
for(i=0;i<5;i++) {if(i&1) List[i] = new A; else List[i] = new B; }
for(i=0;i<5;i++) List[i]->fun();
for(i=0;i<5;i++) delete List[i];
}
Ну примерно так - писал вместе с ответом на текст - наобум...
Member
Статус: Не в сети Регистрация: 08.05.2006 Откуда: СПБ
есть у меня файл, в котором много записей и надо заменить строку в файле на новую вот как сделать? пока что получается что я всю старую строку заполняю пробелами, но тогда в конце получаются пробелы если новая строка меньше старой,не есть хорошо. вот хотел еще заполнить строку символами '\0', но строка старая в файле остается Язык Си, компилятор gcc
_________________ Мы все знаем, что Linux — это круто… он выполняет бесконечные циклы за 5 секунд.
* Линус Торвальдс
Russian найти начало строки которую нужно заменить, найти ее конец, прочитать файл от этого конца в буфер, записать новую строку в файл от начала, записать хвост.
ps если файл очень большой, то придеться читать и записывать "хвост" порциями, в несколько этапов
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения