程序:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合

算法:解决问题的具体方法和步骤

流程图是算法的一种图形化表示方式。

流程图直观、清晰,更有利于人们设计与理解算法。

它使用一组预定义的符号来说明如何执行特定任务

计算机语言发展史

 

1. 机器语言

1) 简介:所有代码里面只有0和1,每一条指令称为“机器指令”

2) 优点

u 代码能被计算机直接识别,直接对硬件产生作用,程序的执行效率非常高

u 能直接访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等

3) 缺点

u 程序全是些0和1的指令代码,可读性差,还容易出错

u 对硬件的依赖性很强,因此不同型号计算机的机器语言又不一样。也就是说,如果2台不同型号的机器想实现一样的功能,需要编写2套完全不同的代码

u 要熟记所用计算机的全部指令和指令的涵义,指令又多又难记

4) 使用场合

综上所述,机器语言很难掌握和推广,现在除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了

2. 汇编语言

1) 简介:用英文单词等符号代替机器指令

2) 优点

u 像机器语言一样,可以直接访问、控制计算机的各种硬件设备

u 占用内存少,执行速度快

3) 缺点

u 不同的机器有不同的汇编语言语法和编译器,代码缺乏可移植性,也就是说,一个程序只能在一种机器上运行,换到其他机器上就不能运行

u 符号非常多、难记,即使是完成简单的功能也需要大量的汇编语言代码,很容易产生BUG,难于调试

u 必须对硬件非常了解,开发效率很低,周期长且单调

4) 使用场合

u 操作系统内核、驱动程序、单片机程序

u 软件的加密、解密、破解

u 病毒的制作、防治

u 程序的调试、分析

3. 高级语言

1) 简介:接近自然语言

2) 优点

u 简单、易用、易于理解,语法和结构类似于普通英文

u 远离对硬件的直接操作,使得一般人经过学习之后都可以编程,而不用太熟悉硬件知识

u 一个程序还可以在不同的机器上运行,具有可移植性

3) 缺点

u 程序不能直接被计算机识别,需要经编译器翻译成二进制指令后,才能运行到计算机上

4) 种类:C语言、C++、C#、Java、Objective-C等

4. 三种语言的对比

分别用机器语言、汇编语言、C语言(高级语言)来写一个计算1+1的程序

1) 机器语言:简直是天书!!!

10111000  00000001

00000000  00000101

00000001  00000000

2) 汇编语言:可读性稍微好一点,但是麻烦

MOV AX,1

ADD AX,1

3) C语言:精简、通俗易懂

1+1

C 语言简介

C 语言是贝尔实验室的 Dennis Ritchie 在1973 年设计的。C 最初用于开发系统级程序。

在微机上,有许多性能良好的商品C 语言系统可用。包括Turbo C、Borland

C语言特点:

结构化的程序设计语言:层次清晰,便于按模块化方式组织程序,易于调试和维护

语句简洁:学习时入门相对容易,C 语言很好地总结了其他语言提出的程序库概念

功能强大:既可用于系统软件的开发,也适合于应用软件的开发。

移植性好:只要对这种语言稍加修改,便可以适应不同型号机器或各类操作系统。

C语言的基本结构

#include <stdio.h>  //以.h为后缀的文件被称为头文件,可以是 C 程序中现成的标准库文件,也可以是自定义的库文件。

void main(){      //程序从main主函数开始执行;

  printf("HelloWorld\n");  //printf打印输出;

}

代码执行流程

1.源代码(以.c为文件扩展名,这是用户创建的文件)

2.目标文件(通常以.o或者.obj为文件扩展名,这是编译器编译后的文件)

3.可执行文件(以.exe为后缀名结束是连接器的输入结果)

4.运行

#include <stdio.h>

int main()

{

// \n:换行   \t:制表位

/*

printf("************\n");

printf("*\n");

printf("*\n");

printf("*\n");

printf("*\n");

printf("************\n");

*/

printf("姓名\t语文\t数学\t英语\n");

printf("张三\t80\t90\t70\n");

return 0;

}

#include <stdio.h>

void main()

{

/*

printf("*******************************\n");// \n:换行

printf("       郑州四中成绩表    \n");

printf("*******************************\n");// \n:换行

printf("姓名    语文    英语     数学\n");

printf("张三    80       80      80\n");

printf("李四    80       80      80\n");

*/

printf("*******************************\n");// \n:换行

printf("\t郑州四中成绩表\n");

printf("*******************************\n");// \n:换行

printf("姓名\t语文\t英语\t数学\n"); // \t:制表位(tab)相当于若干空格

printf("张三\t80\t80\t80\n");

printf("李四\t80\t80\t80\n");

}

从计算机语言的发展到我的第一行代码(HelloWorld)的更多相关文章

  1. 用kotlin方式打开《第一行代码:Android》之开发酷欧天气(1)

    参考:<第一行代码:Android>第2版--郭霖 注1:本文为原创,例子可参考郭前辈著作:<第一行代码:Android>第2版 注2:本文不赘述android开发的基本理论, ...

  2. 第一行代码:以太坊(2)-使用Solidity语言开发和测试智能合约

    智能合约是以太坊的核心之一,用户可以利用智能合约实现更灵活的代币以及其他DApp.不过在深入讲解如何开发智能合约之前,需要先介绍一下以太坊中用于开发智能合约的Solidity语言,以及相关的开发和测试 ...

  3. HTML5 & CSS3初学者指南(1) – 编写第一行代码

    介绍 网络时代已经到来.现在对人们来说,每天上网冲浪已经成为一种最为常见的行为. 在网页浏览器中输入一段文本地址,就像http://www.codeproject.com,等待一下,网页就加载到浏览器 ...

  4. 历时一年,我的著作《第一行代码——Android》已出版!

    前言 事实上我当初决定開始写博客的想法挺简单的,认为自己搞技术这么多年了,总应该要留下点什么.既然没能写出什么出色的应用,那至少也要留下点文字分享给大家,以指引在我后面的开发人员们,毕竟我也从前辈们的 ...

  5. 用kotlin方式打开《第一行代码:Android》

    参考:<第一行代码:Android>第2版--郭霖 注1:本文为原创,例子可参考郭前辈著作:<第一行代码:Android> 注2:本文不赘述android开发的基本理论,不介绍 ...

  6. Kotlin实现《第一行代码》案例“酷欧天气”

    看过<第一行代码>的朋友应该知道“酷欧天气”,作者郭神用整整一章的内容来讲述其从无到有的过程. 最近正好看完该书的第二版(也有人称“第二行代码”),尝试着将项目中的Java代码用Kotli ...

  7. 20172327 2018-2019-1 《第一行代码Android》第一章学习总结

    学号 2018-2019-1 <第一行代码Android>第一章学习总结 教材学习内容总结 - Android系统架构: 1.Linux内核层 Android系统是基于Linux内核的,这 ...

  8. Python入门-第一行代码到多行代码

    不管学啥语言,开始的第一行代码都是: print("hello word") 回车之后,就代表你正式进入代码的世界! 如果报错,恭喜你获得第一个书写bug,请检查单词拼写,双引号, ...

  9. 第一行代码Android(第3版).pdf下载

    2020年人民邮电出版社出版的图书 <第一行代码Android(第3版)>是2020年4月人民邮电出版社出版的图书,作者是郭霖. 封面: 内容简介: <第一行代码 Android 第 ...

随机推荐

  1. preg_*匹配的字符串长度限制问题以及nginx,php上传文件过大问题

    问题背景 使用插件上传高清图片,用的插件base64转码的,上传失败,接口提示:413 (Request Entity Too Large) 问题分析与解决  首先想到的是nginx和php的服务器配 ...

  2. struts2自定义日期类型转换器

    在java web表单中提交的数据难免会有日期类型,struts2支持的日期类型是yyyy-MM-dd,如果是其他格式,就需要自己进行转换.比如yy-MM-dd 要完成自己定义的转换需要完成. 主要的 ...

  3. MarkDown 常用语法教程

    MarkDown 语法说明 [TOC] 标题 标题1 ====== 标题2 ----- ## 大标题 ### 小标题 #### 小标题 列表 无序列表 + 列表文本前使用 [减号+空格] * 列表文本 ...

  4. 现代3D图形编程学习--opengl使用不同的缓存对象(译者添加)

    现代3D图形编程学习系列翻译地址 http://www.cnblogs.com/grass-and-moon/category/920962.html opengl使用不同的缓存对象 在设置颜色一章中 ...

  5. 【Spark2.0源码学习】-1.概述

          Spark作为当前主流的分布式计算框架,其高效性.通用性.易用性使其得到广泛的关注,本系列博客不会介绍其原理.安装与使用相关知识,将会从源码角度进行深度分析,理解其背后的设计精髓,以便后续 ...

  6. java源码剖析: 对象内存布局、JVM锁以及优化

    一.目录 1.启蒙知识预热:CAS原理+JVM对象头内存存储结构 2.JVM中锁优化:锁粗化.锁消除.偏向锁.轻量级锁.自旋锁. 3.总结:偏向锁.轻量级锁,重量级锁的优缺点. 二.启蒙知识预热 开启 ...

  7. openMP编程(下篇)之数据私有与任务调度

    title: openMP编程(下篇)之数据处理子句与任务调度 tags: ["openMP"] notebook: 分布式程序_Linux --- openMP并行编程中数据的共 ...

  8. bzoj2876 [Noi2012]骑行川藏

    Description 蛋蛋非常热衷于挑战自我,今年暑假他准备沿川藏线骑着自行车从成都前往拉萨.川藏线的沿途有着非常美丽的风景,但在这一路上也有着很多的艰难险阻,路况变化多端,而蛋蛋的体力十分有限,因 ...

  9. [效率]Source insight标题栏中路径显示完整路径的方法

    使用Source insight的时候,默认是不显示文件的全路径的,这一点有那么一段时间让我很纠结,因为很多函数都是基于硬件架构的,一个函数有很多时间.查看文件的全路径是非常有必要,可以通过以下实现: ...

  10. spring cloud 集成 swagger2 构建Restful APIS 说明文档

    在Pom.xml文件中引用依赖 <dependencies> <dependency> <groupId>org.springframework.cloud< ...