HTTP/1.0 200 OK Accept-Ranges: none Content-Location: http://terramel.org/2007/09/ Content-Type: text/html; charset=UTF-8 Date: Sun, 09 Nov 2008 09:59:49 GMT Content-Language: zh-CN Set-Cookie: PREF=ID=cb0b9711806b54be:TM=1226224777:LM=1226224789:S=fGddJF7rr6_8y7vN; expires=Tue, 09-Nov-2010 09:59:49 GMT; path=/; domain=74.125.93.104 Server: translation Cache-Control: private, max-age=86400 Expires: Sun, 09 Nov 2008 09:59:49 GMT Connection: Close
这些天来的弗雷德的chmod007.com我邀请参加一个模因创造的列奥纳多的人的3软件,更utilizo.Todos已经参加了模因已经消除浏览器,即时通讯和饲料读者,因为这显然是什么所有使用更多的 ![]()
虽然没有使用联合供稿阅读器,而不是使用即时信息几乎从来没有,消除3更多地使用,因为他们也很明显:该终端使用的是aterm或xterm ,我的Firefox浏览器和我的读者电子邮件Sylpheed (我知道,以老式的,但尚未学会了爱的Webmail ,现场客户电子邮件) 。
Okz ,现在我们将开始认真地米姆! 正如许多知道,我在大学课程信息技术与重点企业管理Fatec 。 几个月前,我可以说,该计划是用来这场比赛更多的胫骨,这最终导致一些让我的DPS (即再加上一些教师选秀权) 。 这学期决定改变我的等级,并成为一个好学生(或至少尝试ehehehehheeh ) 。 为了做到这一点,因为许多都知道,我是来同我的研究,此博客,这使我的教训和准备后在这里与它大大增加我的一些说明hehehehe 。 当然你没有得到足够的只在看电脑。 有些软件是必须有一个良好的优势,他们的学业。 这些谁使用是:
我要感谢弗雷德了我发出了邀请,并借此机会邀请我的女朋友,在Heljä Blojer的 Latoya黑 Tzelli ,并 温德席尔瓦的自由之路。
Technorati标记: 米姆,软件, 程序,软件,程序,软件必不可少的, 启动vim , gvim , 大胆, xmms , scribefire ,博客, 博客,张贴, 职位,文字,文字, 平, Technorati的标签 ,标签, 属性, 007 , chmod007 ,工具, 学习, 码头, xterm , aterm ,火狐 , sylpheed ,电子邮件, 电子邮件, 浏览器, 客户端, 网络邮件,它 的IDE
什么是投影? 如果我们有一个光源,投影机,例如,把任何物体,如钢笔在前面,我们有一个图画,或预测该对象在墙上。 同样的事情发生与计算机图形学。 我们有光源和一个虚拟的相机在这个地方的目的是预测。 此位置可以有两个基本配置:正交或观点。 在角度来看,我们有机会与动画具有更大的保真度取决于距离。 在正交我们有这样的效果,但我们也必须建立精密objetos.Vamos想象,我们有一个有益的借鉴面积,大约20厘米。 我如何代表2米范围内的20厘米? 很简单,与规模。 与规模,我们必须知道,我们最小的代表。 有一点在这一领域被称为一个像素。 我们可以使用这个像素代表1厘米。
正如我们正在与一个地区的20厘米,最大的对象,可以代表在这种情况下,将是一个最多可有20厘米。 如果我们基地的大小像素,我们怎样才能使用代表的物体,我们希望的模式。
出口是预测。 当把glOrtho ,这是因为如果该计划说,宇宙,该地区有多少分我想简单地通报工作的价值参数的命令。 例如,呼叫的功能glOrtho如下:
glOrtho ( -50.50 , -50.50 , -50.50 ) ;
卷与-50左侧, 50的权利, -50下跌, 50 ,并为-50底部50前线。

在这一课,我们将工作表建模2米(或200厘米) 。 如果我们想提请一张桌子与二零零厘米,我们需要与规模。 我们可以假设,每一个点代表1厘米。 这将取决于该项目,我们要发展。 什么是最小的对象,需要吗? 也许开关( 1厘米x 2厘米) ...当时的建模可以说,一个开关将出席1点的专栏。 如果最大的对象是代表一个房间或一个城市,有多少点,我们需要做到这一点吗?
如果您的表模型2米的卷添加否定了积极的将有一个价值100 (平等的glOrtho在上面的例子是所谓的价值观-50.50 , -50.50 , -50.50 ) ,桌子显然没有出现全面和修剪。 该解决方案将划清界线glOrtho与其他参数,使表似乎完全:
glOrtho ( -500.500 , -500.500 , -500.500 ) ;
挤压
挤压是一个技术模型的对象现有扭另一个。
我们将使用这一技术示范使用我们的表谁创造了立方体在过去的教训。 我们将创造5块表:一为封面的表,其余四个的腿。
图书馆为立方体
为了促进我们的工作,我们得到的代码用于立方体,给予修改,并建立一个图书馆呼吁cubo.h :
无效的立方体(注册商标浮动,浮动克,乙浮动,浮动的x , y浮动,浮动厂也浮动,浮动运输) ( r = r/255 ; g/255克= b的= b/255 ; / /如何glColor4f只能从0到1 ,而不是0到255 ,使这一转换,使我们能够利用这些数据从0到255 glBegin ( GL_QUADS ) ; glColor4f (丁克,乙,运输) ; glTranslatef ( X和Y坐标) ; glVertex3f (还,还, 0 ) ; glVertex3f ( -1 *谭耀宗议员,谭耀宗议员, 0 ) ; glVertex3f ( -1 *谭耀宗议员, -1 *谭耀宗议员, 0 ) ; glVertex3f (谭耀宗, -1 *谭耀宗议员, 0 ) ; glVertex3f (还,还, -10 ) ; glVertex3f ( -1 *谭耀宗议员,谭耀宗议员, 10 ) ; glVertex3f ( -1 *谭耀宗议员, -1 *谭耀宗议员, 10 ) ; glVertex3f (谭耀宗, -1 *谭耀宗议员, 10 ) ; glVertex3f ( -1 *谭耀宗议员,谭耀宗议员, 10 ) ; glVertex3f ( -1 *谭耀宗议员,谭耀宗议员, 0 ) ; glVertex3f ( -1 *谭耀宗议员, -1 *谭耀宗议员, 0 ) ; glVertex3f ( -1 *谭耀宗议员, -1 *谭耀宗议员, 10 ) ; glVertex3f (谭耀宗, -1 *谭耀宗议员, 10 ) ; glVertex3f (谭耀宗, -1 *谭耀宗议员, 0 ) ; glVertex3f (还,还, 0 ) ; glVertex3f (还,还, -10 ) ; glVertex3f (谭耀宗, -1 *谭耀宗议员, 0 ) ; glVertex3f ( -1 *谭耀宗议员, -1 *谭耀宗议员, 0 ) ; glVertex3f ( -1 *谭耀宗议员, -1 *谭耀宗议员, 10 ) ; glVertex3f ( 5 , -1 *谭耀宗议员, 10 ) ; glVertex3f ( -1 *谭耀宗议员,谭耀宗议员, 0 ) ; glVertex3f (还,还, 0 ) ; glVertex3f (还,还, -10 ) ; glVertex3f ( -1 *谭耀宗议员,谭耀宗议员, 10 ) ; 格兰达( ) ; )
现在只需致电图书馆开始时的代码cubo.h档案estrutura.c知道确切的路径图书馆。 例如,如果该文件是cubo.h在/ home / saibot /结构,只是把下面的代码:
#包括“ /家庭/ saibot /结构/ cubo.h ”
现在,我们可以称之为立方体的价值观,我们希望,例如:
立方体( 50,50,50,0,0,0,200,0.25 ) ;
前3个值确定的颜色立方体(三原色) ,其他3移动立方体(除非你想,没有必要加以改变,因为我们可以将每一个部分立方体使用glTranslatef的时间创造的每一部分我们表) ,倒数第二值确定的大小立方体,而后者的数字下降到了透明度。
在我们开始塑造我们的表中,我们仍然有看看一些命令。
glTranslatef和glScalef
glTranslatef是履行职能的翻译,即移动物体。 原产地的系统转移到内提供的位置参数的函数(再次回忆的X显示方面,由于时间Eza深度) : glTranslatef ( X和Y坐标)
glScalef改变规模的物体。 其结果是延长或缩短的物体的方向轴。 这一功能主要是用作如下: glScalef ( X和Y坐标) 。 如果该值的一些参数是0 ,这仅仅是协调员消除。
glPushMatrix和glPopMatrix
这些功能可以暂时保存当前的一系列处理。 在教学glPopMatrix ( )所有交易的实际影响矩阵,例如, glTranslatef ,去年glPushMatrix后( ) ,会被忽略。
举例来说,如果以后您移动立方体,而不是使用glPopMatrix ,其他对象的创建是什么界定后的第一个绘图。 如果您使用glPushMatrix前立方体和glPopMatrix后,原产地的系统将再次被创造之前,工作的对象。
创建表
我们现在做的建模我们就座。 正如我们已经做了图书馆提请立方体,我们可以打电话给她创造的覆盖面和腿的桌子,把glPushMatrix内各政党( )和glPopMatrix ( ) 。 我们将使用命令glScalef改变大小其转变成小块,包括腿的桌子和指挥glTranslatef确定立场的每一部分就座。
/ / / /倒装表 / / glPushMatrix ( ) ; glScalef ( 1,0.05,50 ) ; 立方体( 160,180,160,0,0,0,200,0.25 ) ; glPopMatrix ( ) ; / / / /腿表 / / glPushMatrix ( ) ; glTranslatef ( -180 , -200 , -0 ) ; glScalef ( 0.1,1,2 ) ; 立方体( 250,50,50,0,0,0,200,0.25 ) ; glPopMatrix ( ) ; glPushMatrix ( ) ; glTranslatef ( 180 , -200.0 ) ; glScalef ( 0.1,1,2 ) ; 立方体( 250,50,50,0,0,0,200,0.25 ) ; glPopMatrix ( ) ; glPushMatrix ( ) ; glTranslatef ( -180 , -200 , -480 ) ; glScalef ( 0.1,1,2 ) ; 立方体( 250,50,50,0,0,0,200,0.25 ) ; glPopMatrix ( ) ; glPushMatrix ( ) ; glTranslatef ( 180 , -200 , -480 ) ; glScalef ( 0.1,1,2 ) ; 立方体( 250,50,50,0,0,0,200,0.25 ) ; glPopMatrix ( ) ;

glRotatef
glRotatef功能是用于可申请的轮换对象。 所用的参数在这个功能是:角,第十部分,组成部分业在Z 在您选择的角度看,我们的价值观给予了X , Y和Z可以0或1 。
例如,如果你想旋转的物体在45度的X轴,呼叫的功能如下:
glRotatef ( 45,1,0,0 ) ;
如果你想旋转了70度,轴yez ,我如下:
glRotatef ( 70,0,1,1 ) ;
练习
现在,已经形成我们的表格,我们将创造一些椅子,旋转一些(星期日) ,使它们更像样我们的设计 ![]()
小费是建立一个图书馆cadeira.h更容易投入更多的椅子在客厅。 请记住使用命令glPushMatrix和glPopMatrix的每一把椅子,里面的职能glTranslatef这些命令和glRotatef椅子上的旋转想要的。 如果您想您也可以使用glScalef改变大小的一些椅子。
如果您愿意,您也可以建立一个图书馆mesa.h便利创造更多的表格,如果理想。
下面的图片展示了设计我犯了一个表,以茶壶和椅子。 我没有一个属于一个印象,即一些人刚刚石头意味着放弃主持(也许是茶的茶壶将蘑菇...谁知道呢?也许球员谁喝;丁)

Technorati标记: 计算机图形学, OpenGL的, LG电子, 气相色谱, 立方体,桌子 ,椅子, 模型,实物, 系统,尺寸, 角膜,正交 , 观点, glScalef , glRotatef , glPushMatrix , glPopMatrix , glTranslatef ,茶叶 ,蘑菇,蘑菇 茶, 脚, 腿, 脚, 腿,帽子, 帽子
本站由ScribeFire 。
重要的是要注重学习历史的帐单的公司。 一个共同的错误,许多人只是看看,例如,结算了一个月,可往往是一个错误。 见以下图表:

如果我们看一看只有最后结算公司可能会认为, A公司优于B公司,但如果我们分析历史的这两家公司可以很容易理解, A公司营业额下降了,而结算公司的B上升。 这种趋势是,公司A和B继续下降攀登。
提示:形式的商业交易
这也许是因为一些公司拒绝向您提供的数据,以使我们能够使我们的计划基础上。 一个途径的做法是表明,这家公司可以做一个严重的工作,我将提供一个有趣的材料的。 这并不总是很容易为公司装入其营销计划,即使其工作人员是能够做到这一点,很可能该公司没有时间或机会。 爱是一种方法, “我们卖的鱼” ![]()
最终目标的计划
这一目标的营销计划是有一系列的建议采取行动,该公司可能会采取适当行动。 信息越多,我们从公司,大多数国家都已经提出条件,采取适当行动,该公司采取行动。
要考虑的因素在我们的计划
配电产品
分销渠道:以何种方式提供该公司产品的客户

你可以在图片中看到上述情况,更多的分销渠道,最高的水平。 在级别0没有中介渠道,销售是直接给客户。 随着中介机构数量为0 ,级别为0 ,当你有1个中介机构,一级为1 ,当我们有2个,一级是两个有 ![]()
显然,更高的水平,较高的价格,它已经越来越多的人予以赔偿。 一个例子:我是一个经销商谁购买和销售从我的工厂,其他小经销商。 这些较小的分销商显然更应该负责,因为他们购买的另一分销商。
分销商甚至可以直接销售给客户,但他实际购买股票。 经销商填补了卡车和销售作为一个批发商是被动的,仅仅因为股票坐骑,并希望有人买; D
有些攻击往往收取不同的价格出售。 充电时间少于谁购买的CNPJ比谁购买的个人。 Isso é feito para evitar que o canal seja queimado, evitando dessa forma prejudicar as empresas que compram deles.
较低水平的供应,降低支出,但同时你需要一个更大的结构,因为这样,您需要决定路线,检查客户安装负荷等。
一些企业还可以出售专营权...
差异往往是在利润的企业可分配的产品!
销售点
销售点也是重要的,必须进行彻底的评估。 我们不能安装这样一个珠宝店的郊区城市。 香港特别行政区政务
有些问题必须加以评价:
一个很好的想法是复制环境。 例如,一家公司的办公家具可以出售更多,如果不是仅仅离开他们的移动存储,移动客户的感觉是在办公室装饰公司和你的家具在一个真正的办公室。 的想法是建立一个环境,按照他们想要出售,请你坐下...这笔交易不仅是销售产品,但给予客户的体验,让您永远不再需要想象,这是产品在同一个地方自己的。
例如,一个愉快的地方是咖啡弗兰兹坎皮纳斯这个地方被称为“移动办公” 。 它的无线点,是装饰...由于这些原因他们的客户去那里也使会议,甚至一些工作。 空调, cheirinho咖啡,一连串的水在方块中做。
通信
工资:
没有支付:
沟通的目标:
是:市场营销信息系统
客户:
竞争对手:
供应商:
商业:
本站由ScribeFire 。
更新: Okz ,也许我抓住了小繁重。 很多人都忽视了运动...有些害怕的过程中,其他人也许是因为他的球队赢得了比赛的心脏(更每天盐,在该国的足球.... -永恒的) ,或因为你忘了当所谓的电视中的老大哥,谁知道? 我想到了改变的重点谷歌炸弹。 如何再使用另一个叫什么名字? 有些替代品(什么他们最喜爱的评论) :
这里原来的职务。 现在忽略。 星期一静音他是什么决定; D
-
如果儿子的母狗搜查的谷歌第一网站,似乎是穷人的味道? 已经想象! 我们的博客有能力做到这一点,如果我们团结起来! 这是一个谜米向所有人开放。 我们将重复的成功谷歌炸弹却在参议院。 这一次的目标是非常贫穷的味道! 已经把我的博客网站和他的儿子名字的母狗。
如果这些政治escrotos没有认真考虑我们,我们将让他们认识到,我们比他们想象。 让我们的梦想变成现实,攻击他们与我们最强有力的武器,互联网 ! 来吧,大家把他的链接网站如下 :儿子的母狗
该地址您的网站是http://www.senado.gov.br/renan/
只需建立一个网站连结的名称和儿子的母狗。 Hehehehe ! 让我们这一运动是成功的。 我希望大家,不仅作为博客和网络管理员,但主要是因为巴西队谁已经厌倦了如此之多的比萨饼,所有这一切有罪不罚的现象,所有这猴子业务。 这些政客escrotos屙通过你的嘴。 从白痴捍卫他们以最大的“人人次抢断。 ” 让我们停止这种愚蠢的信念,即是错误的,如果窃取他人窃取。 什么是正确的是正确的,什么是错是错误的,不管它不是时髦的或没有多少人或哪些人在做什么!
让我们翘辫子与这种态度让一记耳光参议员阴囊和所有corja的腐败政客和characterless 。
这一案文发送给您的朋友,复制后的博客,写新职位传播活动,按照米姆,目前的通行证。 让我们表现出我们的愤慨和使这一运动去前线!
Technorati标记: 雷南Calheiros , 参议院, 参议员, 参议员,谷歌炸弹,记者,博客, 博客, 网站管理员, 网站管理员, 博客,文章, 文字, 运动, 米姆,政治, 腐败,腐败, 比萨饼,巴西,巴西利亚, 恩 corja ,特征, googlebomb ,链接,儿子的母狗,任南, Calheiros ,莫尼卡, 莫尼卡,养老金,游说, 游说, 国家的耻辱, 博客
它是一个时间,我阅读,我今天才公布,由于缺乏时间。 迟做总比不做好 ![]()

我读的博客所有位当我碰到的一个伟大的故事。
“联邦法官马塞洛Zandavali Freiberger ,第3次瓦拉联邦包鲁,下令以弥补电信现任和前任客户的宽带服务”快捷“的雇用的互联网服务提供商。 该决定的司法还禁止从该公司需要招聘电话供应商获得服务的高速互联网。 判决考虑到了行动的联邦公共事务部于2003年。 “
另一个好消息是,电信不得要求供应商迅速。 最后,正义得以伸张和电信选秀权再也不能结婚的买卖
但是,即使是更好地知道, Telefonica公司将不得不支付赔偿金为所有用户和前用户迅速。 让我们担负起责任,我们必须向电信。 司法部没有其本身而言,现在是,我们尽我们的肯定,因为电信将无法连接到其客户和顾客前说,因损害赔偿,他们将支付。 我敢肯定他们仍然没有人知道,以便当我们负责,他们将提供一种方式,以避免支付。 我们将尽我们的一部分肯定的,因为手机应每一分钱,必须经营,销售已婚,爆窃,服务欠佳,不称职,服务不好,所有小吃有我们在面对客户。 让我们这些儿子bitches支付每一分钱!
噢,让我们运行,因为它看来,儿子bitches的Telefonica 已经在使用,以尽量保持你的供应商迅速。
虽然我写这本与我没有再次快速连接已经是一个多小时。 Servicinho范-.-我也不会这么多坏话在这里,因为我没有力量的。 如果你想读我的意见通过电话和迅速足以阅读帖子“快捷是狗屎”我写在另一许多天,我无法连接这废话!
最后,我本文说: “电信威...拿起你的屁股! ”
参考:所有位
Technorati标记: 电信,快速, 赔偿,供应商, 资金,销售 已婚,地球, Uol , 灌胃,赔偿 ,盗窃 ,司法部, 联邦,法官, 束,连接 巴西,宽带 调制解调器,互联网电话, 网络,信号, 事业, 废话, 儿子bitches , PDF格式,儿子的婊子,不称职, 服务不好,小偷,追回, 一分钱,支付
他的公司,亚布罗德技术,支付服务,现在微软。 通常情况下我wouldnt有什么危害的伙伴关系和交易,甚至没有那些正在做微软等公司。 唯一的问题是,这些交易有时似乎从根本上改变的意见,涉及的人与M $ 。 非常奇怪的($$$$$) ... ($$$$$).
像许多已经知道,几个星期前发生的最后一次会议ABNT巴西的投票谈论文件Standarts ODF和OOXML 。 本人习惯说得太多,因为有很多的信息和意见,在大量的博客和网站。 在阿维Alkalay的(来自IBM巴西)博客,你可以找到的信息和展示的会议,发生在ABNT 。
许多公司在那里了会议。 该是来自微$再三, Unesp (多数民众赞成一种耻辱!市民大学! Unesp耻辱你! ) , SUCESU圣保罗,微软合作伙伴协会,一些区域公司和一些较小的公司(所有公司共用一张床与史蒂夫鲍尔默) 。 的AT来自公司和政府机构如巴西,伊蒂岛,议员,巴西银行,保险箱经济学,邮政, Serpro , Celepar等,公司如BrOffice.org ,自由网络, ODF联盟和孙公司,红帽, 4Linux , IBM公司,地铁圣保罗,谷歌和其他一些国家。
一件事,很多人认为是奇怪的塞萨尔亚布罗德的评论是。 很多人想了解他的表决读两篇文章,他网站上公布提示- 1 。 在第一篇文章,发表在上个月,他谈到这样做比较Standarts与VHS和Betamax 。
在第二条,出版的同一天,我张贴的原始版本(英文)的规定,他试图解释为什么他投票支持OOXML 。
如果您允许的话,我将一些线路的评论他的两个文章:
“我很担心将来...我知道我习惯抗拒,我会最终购买的VHS或Betamax ,它祈祷,大多数人出现相同的决定,我已。 但是,如果有些疯狂的家伙创造的东西,可以录制和播放音频和视频在同一时间? 将这个疯狂的人关心我的磁带收集,我的脂多糖,并创造了,不仅打“新” ,而且还“老” ? 我表示怀疑! 该证明了这一点是录音机及播放器。 任何人发挥他们的旧辊磁带,我们采用了一些几年前? “
好吧,好吧,我亲爱的! So microwaves shouldn’t be made… Just figure it out! What will poor housewifes do with all the pans they have in their kitchen? Metal in the microwave = shit! OMG!!!!! Pans are doomed!!!! Ops… We’re in 2007 and we have microwaves at such a long time. Weird, there is also a stove and a lot of pans in my kitchen. Some days ago I even made my delicious GNU/Macarrão for my girlfriend ![]()
“I still bet that, if in the future, someone care about creating standarts that respects compatibility with all that have already been made before, this guy will be called crazy or something else! But, what if all “this that was created before” are only informations, documents that are part of an entire enterprise information? Millions and millions of texts and spreadsheets!”
Microsoft never gave a damn about respecting compatibility with other softwares like OpenOffice. Do you prefer to be stuck in old documents than accepting a change to a more open and clear new standart? Companies wont lose their informations just because of a change in the standarts. A new format can be adopted, but this doesn’t means that older formats and their softwares will be extinguished from Earth. I’ll make an analogy like the one you used in your examples: I have DVD’s but I also watch some VHS. I also listen to LPs, even though I have CDs. I only have more options now ![]()
“What a waste of time thinking about it. Its so easy to throw things away! I dont know, I think that when I have more then 40 years I’ll still want to listen to my old LPs…”
Just like I said before, I didnt have to throw my tapes away. I also keep my LPs. I still have all of them: Queen, Alice Cooper, Extreme, Judas Priest, Faith No More, Alan Parson’s Project and a lot more that I listen when I want ![]()
“There are over 40 billion documents saved in Microsoft’s binary format. These documents, opened with new Office versions and saved in OpenXML, becomes more accessible by lots of applications that now uses texts and sheets and can be the base for search systems for collective knowledge, business intelligence, among a lot more, that can even be developed like Free Software and Open Source.”
This is sad, dont you think? It seems that whenever another software’s compatibility becomes closer to these formats, Micro$oft releases a new version with some modifications in these documents. The worst of it all is the usually, the final user, ends up thinking that this is OpenOffice’s blame or that there is a problem in Linux and it all finishes with the end user saying: “Let’s call the computer guy and he will install Windows, World and Excel for less than 25 dollars!”. M$ like’s it. Microsoft never had any interest in opening their documents. Just when ODF was created that Microsoft came with this OOXML, a bad standart (if we can call it a standart ¬¬) with a lot of binary parts.
I don’t think I need to do more comments about it. A lot of people in the comunity already know about it and a lot of articles around the web talks about this subject. I think that my deception with Cesar Brod’s vote is not a surprise, just like I also know that a lot of other people also didn’t like his vote. This is sad… Weren’t Novell, Xandros, Linspire and Miguel de Icaza enough? Maybe these people only use Free Software and the community to make money, something that I really despise! But who am I to criticize people’s financial, ideological, political and technological preferencies…? What can I say if some guys think that Bill and Ballmer’s dollars are greener?
It was sad to me to write this article. All I can say is that next time I hear or read the name César Brod I will remember the title of this post: “César Brod, the brazilian Miguel de Icaza!”
(Sorry about my bad english! I tried to do a free translation of my own article and some parts of Cesar Brod’s article that are here! If there’s something you can’t understand, just ask me and I’ll try to translate it better
my original article (in portuguese) is here !)
Para explicar orientação a objetos, podem ser feitas comparações com o mundo real, onde vemos objetos como pessoas, animais, plantas, carros, aviões, casas, prédios, computadores, televisões, rádios etc. Os programas de computador também podem ser compostos de objetos que, as vezes, podem ser dividos em duas categorias: animados e inanimados.Os objetos animados são, em certo sentido, “vivos” (se movem e fazem coisas). Os inanimados, por outro lado, não são capazes de fazer coisas por conta própria. Entretanto, ambos os tipos de objetos tem coisas em comum, como atributos (forma, tamanho, cor…) e comportamentos (por exemplo, um carro que acelera).
Diferentes objetos podem ter atributos semelhantes e exibir comportamentos semelhantes. É possível fazer comparações, por exemplo, entre humanos e chimpanzés, entre homens e mulheres, entre carros e motos etc.
Brincando um pouco
Vamos pegar um pincel como exemplo e dar uma olhada em suas características:
Se temos dois pincéis, um vermelho e um azul, as características são as mesmas. A única diferença entre os dois é a cor do pincel e de sua tinta. Eles pertencem ao mesmo objeto, pois tem as mesmas características. A única coisa que é mudada é a informação de cada atributo.
Se cada um dos atributos tem um determinado valor, devemos indicar qual o tipo de informação que está em cada um deles. A cor é de que tipo? String. Formato também é string, espessura é float etc.
String cor;
String formato;
float espessura;
float tamanho;
String material;
Como podem ver, definimos o tipo do objeto e as informações que serão armazenadas em cada um deles. Para transformarmos isso em algo que Java entenda, basta colocarmos o ; no final de cada um e botar dentro da classe:
public class pincel
{
String cor;
String formato;
float espessura;
float tamanho;
String material;
} Brincando mais um pouco
Vamos aqui definir uma classe carro:
public class carro
{
float rodas;
String cor;
int portas;
float motor;
String portamala;
} Extendendo…
Vamos agora criar a classe veiculo:
public class veiculo
{
int freios;
String cor, modelo;
} Agora usamos o extends para suas respectivas subclasses (carro e moto):
public class carro extends veiculo
{
String estepe, limpador;
} public class moto extends veiculo
{
String manete;
} O comando extends herda as características de outro método. Aqui no exemplo, usamos para que as subclasses moto e carro herdem as características da classe veiculo.
Como as subclasses de veiculo herdarão os atributos de veiculo, a classe veiculo obviamente deverá ter atributos que serão comuns a suas subclasses.
Mão na massa
Vamos criar um programinha simples para fazer cadastro de animais. Vamos primeiro criar a classe animais (salve o código em um arquivo chamado animais.java).
public class animais {
String comida, sexo;
} Agora vamos criar suas subclasses (mamiferos, aves e peixes). Lembrando mais uma vez que cada um deve ser salvo em um arquivo com seu respectivo nome (mamiferos.java, peixes.java e aves.java).
public class mamiferos extends animais {
String tipo_pelo;
String especie;
} public class peixes extends animais {
String cor_escamas;
float tamanho;
} public class aves extends animais {
int idade;
String cor_pena;
} Agora que já criamos a classe animais e suas respectivas subclasses, vamos criar o programa principal para entrada dos dados de cada tipo de animal (salve o código em um arquivo chamado cadastro.java)
import java.util.*;
public class cadastro
{
public static void main(String args[])
{
System.out.println("nnCADASTRO DE ANIMAIS:nn1. Peixesn2. Avesn3. Mamiferosnn4. Sairn");
System.out.printf("Escolha a opção: ");
Scanner resp = new Scanner(System.in);
int respo = resp.nextInt();
animais objAnimais = new animais();
Scanner sc_line = new Scanner(System.in);
Scanner sc_int = new Scanner(System.in);
Scanner sc_float = new Scanner(System.in);
System.out.printf("fDigite a comida de seu animal: ");
objAnimais.comida = sc_line.nextLine();
System.out.printf("nDigite o sexo de seu animal: ");
objAnimais.sexo = sc_line.nextLine();
if (respo==1)
{
peixes objPeixes = new peixes();
System.out.printf("nDigite o tamanho do peixe: ");
objPeixes.tamanho = sc_float.nextFloat();
System.out.printf("nDigite a cor das escamas do peixe: ");
objPeixes.cor_escamas = sc_line.nextLine();
System.out.println("nnFoi cadastrada um peixe que mede " + objPeixes.tamanho + "cm(s)!" + (objPeixes.tamanho >= 10 ? " É um peixe grande" : " É um peixe pequeno") + "!");
System.out.println("O peixe tem escamas de cor " + objPeixes.cor_escamas + "!n");
}
if (respo==2)
{
aves objAves = new aves();
System.out.printf("nDigite a idade da ave: ");
objAves.idade = sc_int.nextInt();
System.out.printf("nDigite a cor das penas da ave: ");
objAves.cor_pena = sc_line.nextLine();
System.out.println("nnFoi cadastrada uma ave de " + objAves.idade + " ano(s)!");
System.out.println("A ave tem penas cor " + objAves.cor_pena + "!n");
}
if (respo==3)
{
mamiferos objMamiferos = new mamiferos();
System.out.printf("nDigite o tipo de pelo: ");
objMamiferos.tipo_pelo = sc_line.nextLine();
System.out.printf("nDigite a espécie: ");
objMamiferos.especie = sc_line.nextLine();
System.out.println("nnFoi cadastrado um mamifero de pelo " + objMamiferos.tipo_pelo + "!");
System.out.println("O mamífero é " + objMamiferos.especie + "!n");
}
System.out.println("O animal come " + objAnimais.comida + " e seu sexo é " + objAnimais.sexo + "nn");
}
} No cadastro.java começamos importando a biblioteca java.util.* que é necessária para o uso do Scanner. Foram feitos 3 Scanners (sc_int, sc_float e sc_line), pois é necessário um Scanner para cada tipo de variável. Como foram usados 3 tipos (int, float e String), criamos um Scanner para cada um de seus respectivos tipos. Alguns comandos foram usados para criar um objeto. Por exemplo, animais objAnimais = new animais(); cria um objeto animais eo atribui a objAnimais. Com isso podemos usar, por exemplo, o atributo objAnimais para chamar objetos da classe animais (comida e sexo, que foram chamados da seguinte forma: objAnimais.comida e objAnimais.sexo )
Um dos System.out.println foi feito da seguinte forma:
System.out.println(”\n\nFoi cadastrada um peixe que mede ” + objPeixes.tamanho + “cm(s)!” + (objPeixes.tamanho >= 10 ? ” É um peixe grande” : ” É um peixe pequeno”) + “!”);
Isso porque foi usado o operador ternário. Com ele fizemos um teste para ver direto dentro do System.out.println o valor que foi inserido na variável tamanho (dentro do objeto peixes, por isso, objPeixes.tamanho). Antes do interrogação (?) foi feita a verificação se o valor era maior ou igual a 10. Se essa condição for verdadeira, o System.out.println mostra a frase ” É um peixe grande”. Se a condição for falsa, ele mostra a frase ” É um peixe pequeno”.
Agora que já foi tudo explicado certinho vamos compilar o programa e rodar:
javac cadastro.java (se quiser, pode também usar javac *)
java cadastro
Prontinho, nosso primeiro programinha “orientado a objetos” ;D
Technorati Tags: java , aula , segunda aula , orientação a objetos , oo , programação , programa , desenvolvimento , software , código , exercícios , classe , class , extends , subclasses , herdar , hierarquia , herança , String , int , float , objeto , valor , variável , objetos
Powered by ScribeFire .
Análise Interna da Organização
Podemos ter, por exemplo, o objetivo de reposicionar um produto. Lembram-se do caso das havaianas que foi mostrado na primeira aula? As havaianas foram objetos de reposicionamento. A empresa não fez isso por acaso. Foi feito um planejamento. Pode ser que a empresa tenha percebido uma queda nas vendas do produto após um estudo de seu ciclo de vendas, o que levou-a a fazer reposicionamento. Foram criadas mais formas de uso, mais modelos, diferentes estilos, alguns conforme a moda, diferentes lançamentos etc.
Para reposicionar uma marca é necessário investimento. Devemos, portanto, ter retornos.
Análise Externa da Organização
Estratégias de Marketing
Orçamento
Custo total da implementação do plano. É necessário aqui confirmar que o retorno justifique o investimento.
Acompanhamento
