第六章_派生类型

合集下载

教育心理学第六章知识要点

教育心理学第六章知识要点

第六章知识的学习(重点章节)1、知识学习的类型2、记忆系统及特点3、遗忘进程特点4、遗忘原因及理论解释5、记忆规律的运用第一节知识学习概述一、知识的含义及实质知识就是个体通过与环境相互作用后获得的信息及其组织.其实质是人脑对客观事物的特征与联系的反映,是客观事物的主观表征.二、知识的类型(一)根据反应活动的深度不同,知识可分为感性知识和理性知识所谓感性知识是对活动的外表特征和外部联系的反映,可分为感知和表象两种水平。

感知是人脑对当前所从事的活动的对象的反映。

表象是人脑对从前感知过但当时不在眼前的活动的反映。

所谓理性知识,反映的是活动的本质特征与内在联系,包括概念和命题两种形式。

概念反映的是活动的本质属性及其各属性之间的本质联系。

命题也就是我们通常所说的规则、原理、原则,它表示的是概念之间的关系,反映的是不同对象之间的本质联系和内在规律。

(二)根据反映活动的内容的不同,知识分为具体知识和抽象知识。

具体知识是对一定时间和地点发生的事实或事实的反映,是对我们看到或听到的事情的心理再现。

具有情境性和时空依赖性。

抽象知识是对于已知事实的概括性的反映,表现为概念、原理、公式、法则等。

(三)根据反映活动的形式不同,知识可以分为陈述性知识和程序性知识1.两者含义:陈述性知识也叫描述性知识,是个人能用言语进行直接陈述的知识。

程序性知识也叫操作性知识,是个体难以清楚陈述、只能借助于某种作业形式间接推测其存在的知识。

2.两者区别:首先,陈述性知识主要用来回答事物是什么、为什么和怎么样的问题。

可用来区别和辨别事物。

目前学校教学传授的主要是这类知识。

程序性知识主要用来解决做什么和怎么做的问题。

其次,从心理表征看,陈述性知识主要以概念、命题和命题网络的形式表征,程序性知识以产生式和产生式系统表征。

3.两者联系:陈述性知识的获得常常是学习程序性知识的基础,程序性知识获得后也为获取新的陈述性知识提供了可靠保证。

4.程序性知识的亚类:加涅认为,程序性知识包括心智技能和认知策略两个亚类。

中学教师资格证_教育心理学___第六章__知识的学习选择题

中学教师资格证_教育心理学___第六章__知识的学习选择题

第六章知识的学习一、单项选择题1.知识是个体通过与环境相互作用后获得的( )。

A.感受与体验 B.前人经验 C.记忆的内容 D.信息及其组织2.知识的实质是人脑对客观事物的特征与联系的反映,是客观事物的()。

A.客观描述 B.关键特征 C.主观表征 D.内在规律3.由于反映活动的()不同,知识可以分为感性知识与理性知识。

A.形式 B.深度 C.复杂程度 D.数量4.由于反映活动的()不同,知识可以分为陈述性知识和程序性知识。

A.形式 B.深度 C.复杂程度 D.数量5.()是人脑对当前所从事的活动的对象的反映。

A.概念 B.命题 C.表象 D.感知6.()是人脑对从前感知过但当时不在眼前的活动的反映。

A.概念 B.命题 C.表象 D.感知7.()反映的是活动的本质属性及其各属性之间的本质联系。

A.概念 B.命题 C.表象 D.感知8.()反映的是不同对象之间的本质联系和内在规律。

A.概念 B.命题 C.表象 D.感知9.()是个人能用言语进行直接陈述的知识。

A.陈述性知识 B.程序性知识 C.感性知识 D.理性知识10.()主要用来回答事物是什么,为什么和怎么样的问题,可用来区别和辨别事物。

A.陈述性知识 B.程序性知识 C.感性知识 D.理性知识11.()是个体难以清楚陈述、只能借助于某种作业形式间接推测其存在的知识。

A.陈述性知识 B.程序性知识 C.感性知识 D.理性知识12.()主要用来解决做什么和怎么做的问题。

A.陈述性知识 B.程序性知识 C.感性知识 D.理性知识13.加涅认为,程序性知识包括()和()两个亚类。

A.动作技能;动作技能 B.心智技能;认知策略C.动作技能;认知策略 D.心智技能;操作技能14.运用概念和规则对外办事的程序性知识是()。

A.动作技能 B.心智技能 C.认知策略 D操作技能15.()是运用概念和规则对内调控的程序性知识,主要用来调节和控制自己的和自己的加工活动。

C++ 第6章继承和派生类

C++   第6章继承和派生类
i3 j2
A
a2
i1 k1
B的子对象a2 的数据成员 B 的 数 据 B的子对象a1 成 的数据成员 员 C 的 数 据 成 员
A
i1 k1
C
B
a1
i1 A k1
B的直接基类 A的数据成员
6.3 派生类的构造函数与析构函数
1.派生类构造函数 1)说明
基类的构造函数不被派生类继承。 创建派生类对象时,自动调用基类构造函
void print(){cout<<"a="<<a<<",";} int Geta(){return a;} private: int a; }; class Derived:public Base { private: int b; Base Ba; //子对象 public: Derived(){b=0;cout<<"Derived缺省构造函数\n";} Derived(int i,int j,int k):Base(i), Ba(j),b(k) { cout<<"Derived构造函数\n";} void print(){ //同名覆盖 Base::print(); //调用基类Base的print()函数 cout<<"b="<<b<<",Ba.a="<<Ba.Geta()<<endl; } };
第六章 继承和派生类
本章内容
继承性、基类和派生类的基本概念
派生类的定义和派生类对象的组成
派生类的构造函数和析构函数
赋值兼容规则
重点:掌握派生类的定义和派生类对象的组成; 派生类的构造函数和析构函数。

词义派生的类型

词义派生的类型

词义派生的类型词义派生,也称为词汇派生,是指从一个原来的词义出发,通过一定的派生方式,改变原来词义使之拓展变得更加丰富的一种词汇变化现象。

它是一种自然而然产生的词义变化现象,是语言发展的必然结果。

词义派生有多种不同的形式,但最常见的分类方式是按其变化的方式分为形态变化和语法变化。

一、形态变化形态变化是语言最为普遍和最简单的一种派生方式,它通过变形的方式将原来的词义得到拓展。

形态变化分为前缀变化和后缀变化。

1、前缀变化前缀变化是最常见的一种形态派生方式,它通过加入前缀(如un-、dis-、anti-、im-、in-)使原来的词义发生变化。

例如,加入un-前缀的单词happy变成unhappy,这时的unhappy有“不高兴的”的含义。

2、后缀变化后缀变化也是一种常见的派生方式,它通过加入后缀(如ize、ment、ation、ness、able)使原来的词义发生变化。

例如,加入ion 后缀的单词名词create变成creation,这时的creation有“创造”的含义。

二、语法变化语法变化指的是一个词本身的词形和词义不发生改变,但其与其他词的组合方式的变化而使原来的词义发生变化,这种变化要求一个词以不同的语法角色出现时其词义也不同,变化模式有动宾变化、定宾变化、反身变化、转喻变化等。

1、动宾变化动宾变化是指一个词以不同的语法角色出现时其词义也会发生变化。

例如:单词break作动词时,表示“打破”;作名词时,表示“休息”。

2、定宾变化定宾变化指一个词以不同的语法角色出现时其词义也会发生变化。

例如:单词book作动词时,表示“预定”;作名词时,表示“书”。

3、反身变化反身变化是指一个词作主语时其词义不同于当它作宾语时的词义。

例如:单词charge作宾语时,表示“给予”;作主语时,表示“收费”。

4、转喻变化转喻变化是指以相似的概念或特征给人以广义或狭义的进行词义拓展的一种变化方式。

例如:单词mouth作名词时,表示“嘴”;作动词时,表示“说”。

教育心理学考试重点第六章知识的学习+实战演练

教育心理学考试重点第六章知识的学习+实战演练

教育心理学考试重点提示:第六章知识的学习重点提示统观近几年全国各省的教师资格认证教育心理学考试,本章的考查重点是:(1)知识及知识学习的类型.(2)知识直观和知识的概括。

(3)记忆系统及其特点。

(4)遗忘的理论解释.(5)运用记忆规律,促进知识保持.考纲链接1.知识的含义。

个体通过与环境相互作用后获得的信息及其组织.其实质是人脑对客观事物的特征与联系的反映,是客观事物的主观表征.2.知识的类型。

(1)感性知识与理性知识(反映活动的深度不同)。

感性知识:主体对事物外表特征和外部联系的反映。

理性知识:主体对事物本质特征与内在联系的反映。

(2)陈述性知识与程序性知识(反映活动的形式不同).陈述性知识:也叫描述性知识,是个人能用言语进行直接陈述的知识。

程序性知识:也叫操作性知识,是个体难以清楚陈述,只能借助于某种作业形式间接推测其存在的知识。

(3)具体知识与抽象知识(反映活动的内容不同)。

具体知识:是对于一定时间和地点发生的事实或事件的反映,是对我们看到或听到的事情的心理再现。

抽象知识:是对已知事实的概括性的反映,表现为概念原理、公式、原则等。

3.知识学习的类型:(1)符号学习、概念学习、命题学习(根据知识的重复程度);(2)下位学习、上位学习、并列结合学习(根据新知识与原有认知结构的关系).4.知识学习的过程。

知识学习主要是学生对知识的内在加工过程.这一过程包括知识获得、知识保持、知识提取三个阶段。

5.知识学习的作用:是增长经验、形成技能、发展创造力的重要前提。

(1)知识的学习和掌握是学校教学的主要任务之一;(2)知识的学习和掌握是学生各种技能形成和能力发展的重要基础;(3)知识学习是创造性产生的必要前提。

6.知识的获得是知识学习的第一个阶段。

知识获得的两个环节是:知识直观和知识概括。

7.知识直观.(1)类型:①实物直观;②模像直观;③言语直观。

(2)提高知识直观的效果:①灵活选用实物直观和模像直观;②加强词与形象配合;③运用感知规律,突出直观对象的特点;④培养学生的观察能力;⑧让学生充分参与直观过程。

第六章 上下文无关文法

第六章 上下文无关文法

第六章上下文无关文法第6 章习题:题1,题3,题11,题12,题13,题14,题16第六章上下文无关文法上下文无关文法相关概念2上下文无关文法定义6-1 :对于所有产生式A→β,均有| β| ≥| A|,并且,A ∈V, β∈( V∪T )∗,文法G =(V,T,P,S)被称为上下文无关文法。

特点:对于所有A ∈V,如果A→β∈P,则无论A 出现在句型的什么位置,都可以用β替换A,无需考虑A 的上下文。

例如,设文法G = S →AB,A →aA| a,B →bB| b;对于任意n ≠m,有a n b m∈L(G),A 产生a 的个数不受B 产生b 的个数的限制。

例:构造上下文无关文法G,使L( G )= { ww T| w ∈{ 0, 1 }* }。

句子结构特征-字符串及其逆:1、句子从中间分为两个部分:W = a1a2…an, W T= an…a2a1WW T= a1a2…anan…a2a12、递归定义语言:a) ∀a ∈{ε}, a ∈L;b) 如果x∈L, 则∀a ∈{ 0, 1 },a x a ∈L;c) 所有满足a) b) 的字符串属于L。

按递归定义定义文法:由基础语句:S→ε由归纳语句:S→0S0 | 1S1故有,G = ( {S}, { 0, 1 }, P, S)P:S →0S0 | 1S1 | ε上下文无关文法L( G1 )= { w ∈{ 0, 1 }* | w = w T}。

上下文无关文法定义6-2:设有CFG G = (V, T, P, S ),G 的派生树是满足如下条件的有序树:1、树的每个节点都有一个标记X,X ∈V ∪T ∪ε。

2、树的根节点的标记为S。

3、如果X 是一个非叶节点的标记,则有X ∈V。

4、如果一个非叶节点v 的标记为A,v 的子节点从左到右依此为v1, v2, …, v n, 并且,它们分别标记为X1,X2, …, X n,则有A→X1, X2, …, X n ∈P。

继承与派生类答案

继承与派生类答案

继承与派生类知识要点1.掌握继承和派生的定义,派生类的定义方法。

(1)掌握继承的两种类型:单继承和多继承。

(2)掌握private,public,protected三种继承方式的特点。

继承方式决定了基类中的成员在派生类中的属性。

三种继承方式的共同点:基类的private成员在派生类中不可见。

区别:对于私有继承,基类的public、protected成员在派生类中作为private成员;对于公有继承,基类的public、protected成员在派生类中访问属性不变;对于保护继承,基类的public、protected成员在派生类中作为protected成员。

(3)掌握派生类中的构造函数和析构函数的使用。

基类的构造函数和析构函数不能继承,所以必要时在派生类中定义自己的构造函数和析构函数。

派生列的构造函数完成基类中新增数据成员和基类数据成员的初始化,基类数据成员的初始化通过基类构造函数来实现。

(4)掌握派生类的同名覆盖规则。

(5)掌握赋值兼容规则。

基类对象可以使用公有派生类对象来代替,包括:派生类对象可以赋值给基类对象;派生类对象可以初始化基类对象的引用;基类类型指针可以指向派生类对象。

2.掌握多重继承的概念、定义方法、多重继承派生类构造函数的执行顺序。

派生类构造函数的执行顺序是先执行所有基类的构造函数(顺序按照定义派生类时指定的各基类顺序),在执行对象成员所在类的构造函数(顺序按照他们在类中的声明顺序),最后执行派生类构造函数体中的内容。

3.掌握虚基类的概念和定义方法。

在多重继承中,如果多条继承路径上有一个公共的基类,则在这些路径的汇合点上的派生类会产生来自不同路径的公共基类的多个拷贝,如果用virtual把公共基类定义成虚基类,则只会保留公共基类的一个拷贝。

典型例题分析与解答例题1:下列对派生类的描述中,()是错误的。

A.一个派生类可以作为另一个派生类的基类B.派生类至少有一个基类C.派生类的成员除了它自己的成员外,还包含了它的基类成员D.派生类中继承的基类成员的访问权限到派生类保持不变答案:D分析:一个派生类可以作为另一个派生类的基类。

第六章派生类型

第六章派生类型

CONTAINS

SUBROUTINE Name_From_Student(String,Student)

CHARACTER(*),INTENT(OUT) ::String

TYPE(Student_Type),INTENT(IN) ::Student

String = Student%Name


CALL Print_Student(stu)
❖ END PROGRAM
程序说明:
(1)由于将派生类型的成员声明为私有的,不能在模块外部对其初始化。在程 序中设计了一个类似于 C++ 构造函数的公有例程,以便对其初始化;
(2)使用了可选参数设计构造例程,在初始化时可以灵活决定是否传入可选参 数,例如:
第一节 派生类型的定义
❖ Fortran 90 允许由固有数据类型或其他派生类型创建新的派生类型, 将不同的类型元素定义为新的类型。比如要维护学生记录,学生的基 本信息可能包括姓名、学号、性别、出生年月、地址、电话号码、成 绩等,据此创建学生数据类型为:

TYPE Student

CHARACTER(20) Name
分类:
Fortran 90 的操作符重载,分为赋值操作符重载和其他操 作符重载。
说明:
操作符重载是对已有的操作符赋予多重含义,使同一操作 符作用于不同类型的数据时产生不同的行为。
1. 赋值操作符重载
将姓名字符串直接赋给派生类型变量,如:

stu = “Smith,JR” !stu 为 Student 派生类型变量

TYPE(派生类型名) [[,属性] ::] 变量列表
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SUBROUTINE Print_student(this) TYPE(Student),INTENT(in)::this PRINT*,this END SUBROUTINE END MODILE PROGRAM Main USE Stu_Type IMPLICIT NONE TYPE(Student)::stu CALL Student_(stu,”Smith,JR”) CALL Print_Student(stu) END PROGRAM
INTERFACE OPERATOR(*) !接口块以 OPERATOR 命名,重载操作符 命名, 接口块以 MODULE PROCEDURE Intersect END INTERFACE CONTAINS FUNCTION BuildSet(V) !函数返回值为派生类型 函数返回值为派生类型 TYPE(SET)BuildSet INTEGER V(:) !延迟形状数组参数 延迟形状数组参数 INTEGER J BuildSet%Cardinality = 0 DO J = 1, SIZE(V) IF(.NOT.(V(J).IN.BuildSet))THEN IF(BuildSet%Cardinality<MaxCard)THEN BuildSet%Cardinality = BuildSet%Cardinality+1 BuildSet%Members(BuildSet%Cardinality) = V(J) ELSE PRINT*,’Maximum set size exceeded-adjust MaxCard’ STOP END IF END IF END DO END FUNCTION BuildSet
程序说明:
(1)由于将派生类型的成员声明为私有的,不能在模块外部对其初始化。在程 序中设计了一个类似于 C++ 构造函数的公有例程,以便对其初始化; (2)使用了可选参数设计构造例程,在初始化时可以灵活决定是否传入可选参 数,例如: CALL Student_(stu,“Smith,JR”) !省略可选参数 CALL Student_(stu,“Smith,JR”,70.0) !传入可选参数 (3)如果派生类型的成员是公有的,可以通过派生类型变量名直接输出其成员 (见例6-1);如果派生类型的成员是私有的,需要设计专门的输出例程(见 例6-2)
针对上述创建的学生数据类型,
TYPE(Student) student1,student2 声明变量 student1。 TYPE(Student),DIMENSION(100) ::class 声明派生类型数组class。 派生类型的变量声明类似于固有类型,在类型名称前添加 TYPE 关键字, 形式如下: TYPE(派生类型名) [[,属性] ::] 变量列表 派生类型成员可以和同类型的变量一样使用,但引用派生类型成员时, 须使用成员操作符%,例如: student1 % Birthdate = 461121 对派生类型变量 student1 的 Birthdate 成员进行赋值。 class % Female = .FALSE. 将数组 class 所有元素的 Female 成员设置为男性。 Student2 = Student1 将 Student1 的所有成员赋给 Student2 的对应成员,同一个派生 类型的2个变量可以相互赋值。
第六章
派生类型
固有数据类型,数组集合的元素要求类型相同。 用户定义类型或派生类型,Fortran 90 允许定义不同类型元 素的集合。
本章主要包括以下几个内容:
1 派生类型的定义 2 派生类型的构造及初始化 3 操作符重载 4 数据库管理应用
第一节
派生类型的定义
Fortran 90 允许由固有数据类型或其他派生类型创建新的派生类型, 将不同的类型元素定义为新的类型。比如要维护学生记录,学生的基 本信息可能包括姓名、学号、性别、出生年月、地址、电话号码、成 绩等,据此创建学生数据类型为: TYPE Student CHARACTER(20) Name !姓名 CHARACTER(10) No !学号 LOGICAL Female !性别 ! INTEGER BirthDate !出生年月 CHARACTER(20),DIMENSION(4) ::Address !地址 CHARACTER(10) Telephone !电话号码 REAL,DIMENSION(20) ::Marks !各科成绩 END TYPE
第二节
派生类型的构造及初始化
例6-1,定义一个简单的学生类型,用来说明派生类型的构造
MODULE Stu_Type !通常将类型声明置于模块内,派生类型模块 IMPLICIT NONE TYPE Student !定义派生类型 CHARACTER(20)NAME REAL Mark END TYPE END MODULE !在模块中定义派生类型 PROGRAM Main USE Stu_Type !引用定义的派生类型模块 IMPLICIT NONE TYPE(Student)::stu1=Student(“Smith,JR”,49),stu2 !在声明派生类型变量 stu1 时,用派生类型构造子对其初始化 PRINT*,‘输入stu2的成员:’ READ*,stu2 PRINT*,stu1,stu2,Student(“Bloggs”,50) END PROGRAM !在主程序中使用该派生类型,
派生类型构造子的形式为: d – name (expr - list)
d – name 指派生类型名; expr – list 为规定派生类型成员值的表达式列表,表达式的次序、类型、 种类数必须和定义派生类型成员的一致; 派生类型构造子可以出现在初始化中,也可以出现在赋值、输入/输出语 句中。 Fortran 95 允许在定义派生类型时,直接给出成员的默认值。如给出成 员 Mark 的默认值为60 : TYPE Student CHARACTER(20) NAME REAL :: Mark = 60 END TYPE 初始化时,成员的默认值将被构造子的表达式列表所覆盖,例如:
第三节
操作符重载
定义: 假如有某一派生类型的变量 a 和 b,要执行加法运算,我 们自然希望使用“+”运算符,写出表达式 “a+b”,但编译 时会出错,因为编译器不知道该如何完成这个加法操作 (Fortran 90 预定义运算符的运算对象只能是固有数据类 型),这时需要我们自己编写程序说明 “+” 在作用于该派 生类型的变量时,该实现什么样的功能,这就是操作符的 重载,或者是运算符重载。 分类: Fortran 90 的操作符重载,分为赋值操作符重载和其他操 作符重载。 说明: 操作符重载是对已有的操作符赋予多重含义,使同一操作 符作用于不同类型的数据时产生不同的行为。
ห้องสมุดไป่ตู้ 6-3 赋值操作符重载
MODULE StudentMod IMPLICIT NONE TYPE Student_Type CHARACTER(20)NAME REAL Mark END TYPE INTERFACE ASSIGNMENT(=) !接口块须以 ASSIGNMENT 命名 MODULE PROCEDURE Name_From_Student,Student_From_Name END INTERFACE CONTAINS SUBROUTINE Name_From_Student(String,Student) CHARACTER(*),INTENT(OUT) ::String TYPE(Student_Type),INTENT(IN) ::Student String = Student%Name END SUBROUTINE SUBROUTINE Student_From_Name(Student,String) CHARACTER(*),INTENT(IN) ::String TYPE(Student_Type),INTENT(OUT) ::Student Student%Name = String END SUBROUTINE END MODULE
MODULE IntegerSets IMPLICIT NONE INTEGER, PARAMETER::MaxCard = 100 TYPE SET PRIVATE ! 规定成员在模块外不可访问 INTEGER Cardinality INTEGER, DIMENSION(MaxCard)::Members END TYPE SET 定义一个派生类型SET !定义一个派生类型 INTERFACE OPERATOR(.IN.) !接口块以 OPERATOR 命名,新定义操作符 命名, 接口块以 MODULE PROCEDURE MemberOf END INTERFACE
MODULE Stu_Type IMPLICIT NONE TYPE Student !定义Student数据类型 PRIVATE !成员私有,将成员的访问权限控制在模块内 CHARACTER(20)NAME REAL Mark END TYPE CONTAINS SUBROUTINE Student_(this,n,m) !相当于C++中的构造函数 TYPE(Student),INTENT(out)::this CHARACTER(*),INTENT(in)::n REAL,OPTIONAL,INTENT(in)::m this%Name=n IF(PRESENT(m))THEN this%Mark=m ELSE this%Mark=60 END IF END SUROUTINE
1. 赋值操作符重载
将姓名字符串直接赋给派生类型变量,如: stu = “Smith,JR” !stu 为 Student 派生类型变量 从派生类型变量中提取姓名,将派生类型变量直接赋给姓名字 符变量。如: StuName = stu ! StuName 为字符类型变量 以上操作中需要重新定义赋值操作符,使之可以处理字符类型 和派生类型组成的混合类型。 对第一种情况,需要编写带有两个虚参的子程序例程 (Student_From_Name),两个虚参分别为派生类型和字符类 型,其顺序必须和赋值表达式中出现的顺序相同。在该例程 中,需要显式地将字符参数赋给派生类型的姓名成员; 对第二种情况,是第一种情况的反操作,即子程序例程 (Name_From_Student)的两个虚参分别为字符类型和派生类 型,且将派生类型的姓名成员赋给字符参数。 详见例6-3
相关文档
最新文档