C++程序设计教程学习(1)-第一部分 编程基础

第一章 概述

C++到底难不难学?没有学不会的事情

1.1 程序设计语言

语言

编程语言 人和计算机交流的工具,群体扩大,人人间交流过程描述与信息表达的工具

机器语言,汇编语言,高级语言

1.2 C++简史

1.3 C++

  1. 褒贬C
    计算机应用范围的扩大和编程规模的扩大,可维护性、可扩展性、安全性要求。提出程序设计语言应该具有数据类型的扩充能力,基于数据类型和面向数据类型的编程语言不断出现。以程序员自己定义或设计数据类型的方式将复杂结构的数据进行系统的组织,统一的管理,以使程序组织合理,算法设计简单易懂。
  2. C继承者
    C++既可以进行过程化编程,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计,并正在完善以模板为特点的泛型程序设计。 C++是一种混合型程序设计语言,可以采用程序设计方法,进行各种目的之编程。不放弃高效运行的实用性特征,而又致力于提高大规模程序的编程质量,提高程序设计语言的问题描述能力。
  3. 标准C++
    标准C++与程序员更紧密的关系是系统的可移植性,采用标准C++编程可在不同的标准C++编译器上得到在不同计算机系统中运行出同样结果的机器程序。程序员可利用标准库。标准C++工具:windows:C++ Bulider6.0以上,VisualC++.NET以上,Linux:G++3.0 、Borland C++ Kylix3.0及以上

1.4 C++编程流程

  1. 编程过程
    编程语言分为解释型和编译型,解释型没有编译和连接的中间环节,方便执行但无法离开解释器现场,需要不断交互所以性能低。C++编程过程,编辑、编译、链接、调试
  2. 最小样板程序
  3. 编程风格

1.5 程序与算法

  1. 程序
    不同主体或不同状态性能有差异,追求的是各个抽象层次的编程,追求编程方法的实效性。这意味这“学会计算机语言,看得懂语法,了解了语言的描述方法”,还是不够的,它和熟练运用计算机语言,能用语言高效、正确地描述问题、解决问题是有天壤之别的。
  2. 算法

    程序的动作序列包含了对数据的存储访问和算术运算。对数据的合理描述、组织、存放和读取,关系到程序运行的和高效。

    1. 目的性:算法是有求节目的之动作序列,必须有运算结果

    2. 抽象性:算法离不开数据结构,比具体的程序设计更超脱,抽象层次更高一些,不在乎实现语言

    3. 研究性:描述算法的目的是沟通人们的是想,而不是实现,通过语言实现的程序来验证算法其资源占用与性能各项指标

  3. 编程与结构(Programming & Structures)

    编程强调全方位,具体问题请具体分析,编程当然是为了解决计算问题,计算问题强调算法,程序设计也就是在一定的抽象层次上的算法计算。这里的抽象层次理解为数据的描述方式。大量数据处理,编程问题含有大量纵横交错的数据时,意识到数据组织和数据结构的重要性,数据存在的形式必须脱离程序。程序=算法+数据结构。编程中数据结构的描述应相对算法而独立。针对算法事实上与数据相分离,如果数据由数据结构来描述,算法就可以以数据结构为依托,通过数据结构来访问数据,从而简化算法和提高逻辑清晰性。

    1. 从动态性上说:程序仍然是计算机中的过程运行体,即操作系统中的的进程。

    2. 从静态性上说:程序不再是单纯的过程体(操作序列)了,不再是单纯的算法了,而是算法和数据结构的有机组织。程序含有更多的数据组织描述,而数据组织描述又包含有一系列的操作。

    程序所反映的操作序列依赖于抽象层次更高的数据结构,而不是直接对应于单纯空间上的原始数据。观念上程序发生了变化,带来了设计方法的进化,改变了程序的静态描述形式,动态与静态不再对应了,计算机运行的进程与人工编程的逻辑开始分离,从单纯直译进入到对程序结构的复杂分析与理解。

1.6过程化程序设计

  1. 基于过程的程序设计(Procedural-Based Programming)
    从程序设计的角度来说,程序的概念是组织成一定形式的操作序列。过程结构中问题模型反应为过程结构模型,实际上就是功能模型。描述算法时一般总是分层次描述的,过程化设计以一系列过程的划分和组织来观察、分析和解决问题。
  2. 结构化程序设计(Structured Programing)
    学习程序设计方法的根本是要解决如何组织程序的问题,也即解决算法与数据的关系问题。
    1. 描述任何实体的操作序列只需要三种基本控制结构:顺序,选择,循环
    2. 程序设计中的各个过程体和组成部分应以模块表示:每个模块其内聚性越强,外链性越少,则模块独立性越好。
    3. 过程化的程序设计方法:程序设计采用从上到下,逐步细分的方法展开,即过程化程序设计方法

1.7对象化程序设计

  1. 基于对象的的程序设计(Object-Based Programing)
    抽象数据模型就是想要描述这一共同规范,它描述数据的组织和相关的操作,反映了问题的抽象模型。数据类型的本质是数据组织和其操作的捆绑性。程序=算法+抽象数据类型。对象是程序中抽象数据类型的具体表现。算法是基于抽象数据类型的,是作用在抽象数据类型实体化的过程中的行为序列。程序的行为表现为分层的过程结构与对象定义的集合。
  2. 面向对象的程序设计
    类的层次关系也带来了对象的层次关系,它反映了同种操作的异类行为。要能准确地反应分层之后的对象集合中每个对象行为的个性,这种属性称为对象操作的多态性。程序的运行是通过抽象数据类型来表现和沟通,而抽象数据类型最后还是以对象来实例化的。

1.8目的归纳

转载于:https://www.cnblogs.com/zhuqn/p/4040333.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258093.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《Programming WPF》翻译 第9章 6.我们进行到哪里了?

《Programming WPF》翻译 第9章 6.我们进行到哪里了? 原文:《Programming WPF》翻译 第9章 6.我们进行到哪里了?只有当任何内嵌控件都没有提供你需要的底层行为时,你将要写一个自定义控件。当你写一个自定义控件,你将要使用到依赖…

php实现上传,PHP实现文件上传例子

实例1:上载文件表单网页:updatefile.htm上载文件表单请选取文件:[CtrlA 全部选择 然后拷贝]处理上载文件网页:updatefile.php3处理上载文件copy($userfile, "newfilename");echo $userfile." - 用户上传到服务器上的文件临时存…

浙企加入中国大数据产业生态联盟 共商数据价值

基于大数据时代的考量,在工业和信息化部指导下,8月2日,中国电子信息产业发展研究院联合大数据产业链各环节企业及第三方产业机构自愿组成非营利社会组织——中国大数据产业生态联盟。浙江企业元宝铺受邀成为联盟理事成员单位。 大会现场&…

hdu 4442 Physical Examination (2012年金华赛区现场赛A题)

昨天模拟赛的时候坑了好久,刚开始感觉是dp,仔细一看数据范围太大。 题目大意:一个人要参加考试,一共有n个科目,每个科目都有一个相应的队列,完成这门科目的总时间为ab*(前面已完成科目所花的总时…

xsd学习教程

http://www.w3school.com.cn/schema/转载于:https://www.cnblogs.com/eric-lin/p/4969269.html

php 赋值 递增,PHP 基础(赋值及函数)

开端<?php>结尾弱类型语言 定义变量的时候 不需要 声明 但是 每一个变量前 都必须 加$ 符号储存文件按 统一放到 安装文件夹下面的 WAMP 下面 的WWW 文件内部 (与创的站点统一即可) 该文件下面不能出现中文注释语法&#xff1a; 单行注释&#xff1a;…

maven project创建填充项

GroupID是项目组织唯一的标识符&#xff0c;实际对应JAVA的包的结构&#xff0c;是main目录里java的目录结构。ArtifactID就是项目的唯一的标识符&#xff0c;实际对应项目的名称&#xff0c;就是项目根目录的名称。一般GroupID就是填com.leafive.test这样子。转载于:https://w…

【循序渐进学Python】14.数据库的支持

纯文本只能够实现一些简单有限的功能。如果想要实现自动序列化&#xff0c;也可以使用 shelve 模块和 pickle 模块来实现。但是&#xff0c;如果想要自动的实现数据并发访问&#xff0c;以及更标准&#xff0c;更通用的数据库(database)存储方式还是使用数据库。 1. Python 数据…

Foundation框架

1.框架是由许多类、方法、函数、文档按照一定的逻辑组织起来的集合&#xff0c;以便使研发程序变的更容易 清除缓存&#xff0c;删除这个文件夹下的所有文件/Users/fanyafang/Library/Developer/Xcode/DerivedData 显示隐藏文件&#xff1a;defaults write com.apple.finder Ap…

ubuntu上搭建php,ubuntu10.04上搭建php网站运行环境

ubuntu 10.04下搭建php网站运行环境ubuntu 10.04下搭建php网站运行环境前提&#xff1a;要打开root权限sudo password [这里填写root密码]1、第一步安装ubuntu10.042、更新源sudo apt-get update3、安装lighttpdsudo apt-get install lighttpd安装好之后检查lighttpd是否成功启…

Windows 10 Threshold 2 升级记录

昨天&#xff08;11月17日&#xff09;升级到Windows 10 Threshold 2版本。我的使用的设备是Surface Pro 3&#xff0c;4G内存&#xff0c;128G硬盘。 Threshold 2是作为一个Windows系统更新推送的。如果没有收到系统更新提示&#xff0c;在系统设置里面手动检查一下更新就可以…

转换php script类型,javascript如何实现值的类型转换

本篇文章给大家介绍使用javascript进行值的类型转换的方法&#xff0c;有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你们有所帮助。JavaScript是松散类型的语言&#xff0c;大多数情况下&#xff0c;运算符和函数会自动将值转换为正确的类型(隐式转…

iOS屏幕适配方案-Auto Layout

市场上的android手机五花八门。各种尺寸的屏幕让android程序员们比較头疼。也有一些大神写了一些博客提出了自己的观点。iOS貌似也迎来了大屏6&#xff0b;&#xff0c;因此屏幕适配的问题也是有滴&#xff0c;因此苹果也有自己的方法&#xff0d;auto Layout 。本人初学iOS。今…

Exercise 12: Prompting People

age raw_input("How old are you? ") height raw_input("How tall are you? ") weight raw_input("How much do you weigh? ") print "So, youre %r old, %r tall and %r heavy." % ( age, height, weight) 转载于:https://www.…

一年一循环

一年了&#xff0c;没怎么关注博客园&#xff0c;回来看看。 希望自己今后多学多记录多分享。转载于:https://www.cnblogs.com/Chinarain/p/4974904.html

JAVA三角海伦公式,海伦公式求三角形面积出错求教

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼就下面这个程序 输入其他的数字都可以算出面积 但是当输入3,4,6时 计算出面积为零 求吧友指出错误在哪package javaapplication17;import java.util.Scanner;public class JavaApplication17 {public static void main(String[] ar…

虚拟机里面安装Openfiler 2.99

2019独角兽企业重金招聘Python工程师标准>>> 简介 Openfiler 由rPath Linux驱动&#xff0c;它是一个基于浏览器的免费网络存储管理实用程序&#xff0c;可以在单一框架中提供基于文件的网络连接存储 (NAS) 和基于块的存储区域网 (SAN)。Openfiler 支持 CIFS、NFS、…

win10如何搭建php,Win10系统怎么搭建php环境 win10搭建PHP环境方法

Win10系统怎么搭建php环境&#xff1f;win10搭建PHP环境方法。在今天的Win10系统使用教程中&#xff0c;我们将给大家分享的是在Win10系统下搭建Apache和PHP的开发环境的方法。可能有网友会问&#xff1a;Win10系统搭载Apache和PHP的开发环境的方法是不是与Win7/Win8.1的差不多…

关于jmf不能播放mp3的问题解决

想写个JAVA的MP3音乐管理器&#xff0c;使用JMF插件&#xff0c;但发现运行时总报一个异常&#xff1a;Unable to handle format: mpeglayer3, 44100.0 Hz, 16-bit, Stereo, LittleEndian, Signed, 16000.0 frame rate, FrameSize32768 bitsFailed to realize: com.sun.media.P…