逻辑学三段论的题求答案拜托大家了 1.MAP,SEM 2.MAP,MOS 3.PAM,SAM 4.

逻辑学三段论的题求答案拜托大家了 1.MAP,SEM 2.MAP,MOS 3.PAM,SAM 4.,第1张

这些问题在你的另一个提问中我已经回答了

(1)不能得出必然结论,因为小前提是否定的,按照规则,结论也应该是否定的,那么大项在前提中不周延,在结论中变得周延了,违反了“在前提中不周延的项在结论中也不得周延”的规则。

(2)不能得出必然结论,因为小前提是否定的,按照规则,结论也应该是否定的,那么大项在前提中不周延,在结论中变得周延了,违反了“在前提中不周延的项在结论中也不得周延”的规则。

(3)不能得出必然结论,因为三段论要求中项在前提中至少周延一次,这两个前提中中项一次也不周延。

(4)可以得出SAP的必然结论,符合三段论的各项规则,

(5)不能得出必然结论,因为两个否定的前提不能得出结论。

(6)可以得出SEP的必然结论,符合三段论各项规则。

(7)可以得出SIP的结论,符合三段论各项规则。

(8)不能得出必然结论,因为三段论要求中项在前提中至少周延一次,这两个前提中中项一次也不周延。

1.02 设商品是’S’交换价值是P.故该推理的形式是SAP→-POS

因为SAP→SE-P→PES→-POS

或SAP→SEP→PES→POS

或SAP→SEP→PES→PAS→SIP→PIS→POS

所以.SAP→POS为正确的推理

1.03设导体是S 有机物是P 故推理形式是SIP→PIS

因为SIP→SOP.PIS→POS

又因为SOP不能换位

所以SIP推不出PIS

所以该推理不正确

1.04 设中子是M,不带电的是P,基本粒子是S 故推理的形式是,MAP/MAS→SAP

因为小前提中S是不周延的,而结论中的S是周延的

所以该推理形式是不正确的

该推理不正确

1.05设法律是M,上层建筑为S,阶段性是P,故该推理形式是MAS MAP/SAP

因为小前提中S是不周延的,即结论中SAP的S是周延的,不因为前提中不周延的,在结论中也必然为不周延的

所以

该推理形式不正确

所以

该推理不正确

1.06设塑料是S,导体为M,含有自由的电子物为P,故该推理形式是SEM MAP/SEP

因为大前提MAP中P是不周延的 而结论中SEP中的P是周延的

又因为前提中不周延的 结论中也必为不周延

所以 该推理前提不正确的

故该推理不正确

1.07 设鲸为S 鱼是P 通过肺呼吸的为M 故该推理形式为PEM SAM\SEP

因为该推理形式属于三段论的第2论,且是EAE形式,是有效形式,故该推理也是有效的

因为第2格的规则是

1大前提必须是全称判断

2两个前提中必须有一个是否定判断的

所以 该推理形式是有效的

所以

该推理是正确的

二1尽管火车没晚点,他也没按时到会。¬(p←¬q)=¬p∧¬q

2虽然不及时转产,但是这个企业不会倒闭。¬(p→q)=p∧¬q

3尽管他搞经济活动,但他不会出差错或者犯错误。¬(¬p←¬q)=p∧¬q

4如果小张是象棋爱好者,那么他也是围棋爱好者。¬(¬p∧q)=¬p→¬q

5王老师没有表达清楚他的意思且同学们都听错了。¬(p∨q)=p←→q

三(一)1如果老刘懂的法律,那么他本人是律师。p←q=q→p

2只有老刘不懂得法律,老刘才不是律师。p←q=¬q←¬p

3如果老刘本人不是律师,那么老刘不懂得法律。p←q=¬p→¬q

(二)1只有老李不出差,小张才不主持工作。p→q=¬p←¬q

2只有小王主持工作,老李才出差。p→q=q←p

3如果小王没有主持工作,那么老李没有出差。p→q=¬q→¬p

四1或者歌德尔不是数学家,或者是逻辑学家。¬(p∧¬q)=¬p∨q

2或者不提高劳动生产率,或者采用新技术。p→q=¬p∨q

3或者重视困难,或者不克服困难。p←q=p∨¬q

信号量:一个整数;

大于或等于0时代表可供并发进程使用的资源实体数;

小于0时代表正在等待使用临界区的进程数;

用于互斥的信号量初始值应大于0;

只能通过P、V原语操作而改变;

信号量元素组成:

1、表示信号量元素的值;

2、最后操作信号量元素的进程ID

3、等待信号量元素值+1的进程数;

4、等待信号量元素值为0的进程数;

二、主要函数

1.1 创建信号量

int semget(

key_t key, //标识信号量的关键字,有三种方法:1、使用IPC——PRIVATE让系统产生,

// 2、挑选一个随机数,3、使用ftok从文件路径名中产生

int nSemes, //信号量集中元素个数

int flag //IPC_CREAT;IPC_EXCL 只有在信号量集不存在时创建

)

成功:返回信号量句柄

失败:返回-1

1.2 使用ftok函数根据文件路径名产生一个关键字

key_t ftok(const char *pathname,int proj_id)

路径名称必须有相应权限

1.3 控制信号量

int semctl(

int semid, //信号量集的句柄

int semnum, //信号量集的元素数

int cmd, //命令

/*union senum arg */... //

)

成功:返回相应的值

失败:返回-1

命令详细说明:

cmd: IPC_RMID 删除一个信号量

IPC_EXCL 只有在信号量集不存在时创建

IPC_SET 设置信号量的许可权

SETVAL 设置指定信号量的元素的值为 agc.val

GETVAL 获得一个指定信号量的值

GETPID 获得最后操纵此元素的最后进程ID

GETNCNT 获得等待元素变为1的进程数

GETZCNT 获得等待元素变为0的进程数

union senum 定义如下:

union senum{

int val

struct semid_ds *buf

unsigned short * array

}agc

其中 semid_ds 定义如下:

struct semid_ds{

struct ipc_pem sem_pem //operation pemission struct

time_t sem_otime //last semop()time

time_t sem_ctime //last time changed by semctl()

struct sem *sembase //ptr to first semaphore in array

struct sem_queue *sem_pending//pending operations

struct sem_queue *sem_pending_last//last pending operations

struct sem_undo *undo //undo requests on this arrary

unsigned short int sem_nsems//number of semaphores in set

}

1.4 对信号量 +1 或 -1 或测试是否为0

int semop(

int semid,

struct sembuf *sops, //指向元素操作数组

unsigned short nsops //数组中元素操作的个数

)

结构 sembuf 定义

sembuf{

short int sem_num//semaphore number

short int sem_op//semaphore operaion

short int sem_flg //operation flag

}

三、例子:

2.1 服务器

#include <sys/sem.h>

#include <sys/ipc.h>

#define SEGSIZE 1024

#define READTIME 1

union semun {

int val

struct semid_ds *buf

unsigned short *array

} arg

//生成信号量

int sem_creat(key_t key)

{

union semun sem

int semid

sem.val = 0

semid = semget(key,1,IPC_CREAT|0666)

if (-1 == semid){

printf("create semaphore error\n")

exit(-1)

}

semctl(semid,0,SETVAL,sem)

return semid

}

//删除信号量

void del_sem(int semid)

{

union semun sem

sem.val = 0

semctl(semid,0,IPC_RMID,sem)

}

//p

int p(int semid)

{

struct sembuf sops={0,+1,IPC_NOWAIT}

return (semop(semid,&sops,1))

}

//v

int v(int semid)

{

struct sembuf sops={0,-1,IPC_NOWAIT}

return (semop(semid,&sops,1))

}

int main()

{

key_t key

int shmid,semid

char *shm

char msg[7] = "-data-"

char i

struct semid_ds buf

key = ftok("/",0)

shmid = shmget(key,SEGSIZE,IPC_CREAT|0604)

if (-1 == shmid){

printf(" create shared memory error\n")

return -1

}

shm = (char *)shmat(shmid,0,0)

if (-1 == (int)shm){

printf(" attach shared memory error\n")

return -1

}

semid = sem_creat(key)

for (i = 0i <= 3i++){

sleep(1)

p(semid)

sleep(READTIME)

msg[5] = '0' + i

memcpy(shm,msg,sizeof(msg))

sleep(58)

v(semid)

}

shmdt(shm)

shmctl(shmid,IPC_RMID,&buf)

del_sem(semid)

return 0

//gcc -o shm shm.c -g

}

2.2 客户端

#include <sys/sem.h>

#include <time.h>

#include <sys/ipc.h>

#define SEGSIZE 1024

#define READTIME 1

union semun {

int val

struct semid_ds *buf

unsigned short *array

} arg

// 打印程序执行时间

void out_time(void)

{

static long start = 0

time_t tm

if (0 == start){

tm = time(NULL)

start = (long)tm

printf(" now start ...\n")

}

printf(" second: %ld \n",(long)(time(NULL)) - start)

}

//创建信号量

int new_sem(key_t key)

{

union semun sem

int semid

sem.val = 0

semid = semget(key,0,0)

if (-1 == semid){

printf("create semaphore error\n")

exit(-1)

}

return semid

}

//等待信号量变成0

void wait_v(int semid)

{

struct sembuf sops={0,0,0}

semop(semid,&sops,1)

}

int main(void)

{

key_t key

int shmid,semid

char *shm

char msg[100]

char i

key = ftok("/",0)

shmid = shmget(key,SEGSIZE,0)

if(-1 == shmid){

printf(" create shared memory error\n")

return -1

}

shm = (char *)shmat(shmid,0,0)

if (-1 == (int)shm){

printf(" attach shared memory error\n")

return -1

}

semid = new_sem(key)

for (i = 0i <3i ++){

sleep(2)

wait_v(semid)

printf("Message geted is: %s \n",shm + 1)

out_time()

}

shmdt(shm)

return 0

// gcc -o shmc shmC.c -g

}


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/155817.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-22
下一篇2023-03-22

发表评论

登录后才能评论

评论列表(0条)

    保存