《39RTMCAN 16207-61》
福州卓凯以质量打造品质!用诚信共赢未来!以专业打动人心!用服务感动客户!
福州卓凯电子科技有限公司&&& 选择卓凯 选择程工 选择成功!
联系人:程工
_____________________________________________
而且修改困难
REXROTH HYDRAULIC MOTOR R0 / AA10VS028DRG/31R-VKC62N00 99041
FANUC AC SERVO MOTOR ALPHA 12/43-B076
BRAND !! Sanyo Denki BL Super P3 Servo Motor P30B06020PXS00M 3000 rpm 14 mm
YASKAWA ELECTRIC SGMGH-44PCA61 AC SERVO MOTOR
REXROTH INDRAMAT MKD112D-027-KG3-AN MAGNET MOTOR * *
MITSUBISHI DC SERVO MOTOR_HD 100-11_HD10011_PICK UP UNIT_RST-5XC-II_RST-5XC-11
FUJI ELECTRIC MOTOR OVERLOAD RELAY 25 AMP MODEL SC25AA
Mitsubishi HA100CS AC Permanent Magnet Servo Motor
编程器分简易型和智能型两类
R88M-K3K030C-B Omron
R88MK3K030CB
MOTOR, Up/ Down, Hitachi P/N 545-8733
MURR ELEKTRONIK 23112 MOTOR SUPPRESSOR VARISTOR,
ABB Metric Induction Motor - 3GVA072002-BSC
FANUC A06B-06, AC Servo Motor Alpha 12/2000
BaldorReliance10G200X661H23Ph30Hp1175RPMMotorw/53/4'Key2'Diameter
GE FANUC A06B-#C000 AC SPINDLE MOTOR **
电缆、电线进出口保持密封状态
TOP ! ABB VARIO - MOTOR 0,45KW 53,6- 316,4 ELEKTROMOTOR
Fanuc AC Servo Motor A06B-
因此采用风机热继电器或器件散热片传感器
bosch rexroth msk061c-0300-nn-s1-u-p1-nnnn
servo motor
ABB Type A Motor Part# 3HAC5887-1 for Irb 140 3HAC7842-1
FANUC A06B- AC SERVO MOTOR
(3)将直流功率变换为交流功率的"逆变器":同整流器相反
Motorschutzschalter ABB Typ MS165-32, Bereich 23-32A, Nr.
Fanuc AC Spindle Motor 18P A06B-00_A06B_AO6B-O728-B1O4
Fanuc 20S AC Servo Motor, A06B-, , 3 Month
ABB Motor Overload T6DU 1.1 - 1.6 Amp
FUJI ELECTRIC BM3RHB-1P6 MANUAL MOTOR STARTER 1-1.6A BM3RHB1P6
Reliance1/2hpP56G2338VRJMotor(MOT2235)
Fanuc AC Servo Motor, Mod 10, # A06B-, 144 V, ,
STP-MND-BH-UA
做出相应的电路图
逻辑设计法的优点是能获得理想、经济的方案
RelianceAllen-Bradley30hpDCmotor,rpm,500/300volt,LC2812ATZ-
YASKAWA SGM-08A2FJ34 FUJI SAM1300 AC SERVO MOTOR
FANUC A06B-
AC Servo Motor with Pulse Coder A860-
ABB 3HAB5761-1 IRB6400 Robot M96, M97, M98 Servo Motor Axis 4 & 5
RELIANCEELECTRICP56X201RWITHA56DBSC-6MOTORBRAKE
Rexroth Indramat MHD112B-024-PP1-BN Permanent Magnet Servo Motor
Honeywell Black Tower Fan - 8-Speed Motor - Digital Display
主运动(切削运动)--主轴通过卡盘或顶尖带动工件的旋转运动(2)进给运动--溜板带动刀架的直线运动机械调速:工件材料、尺寸加工工艺等不同
RELIANCEELECTRIC01MAN76993DUTYMASTERA-CMOTOR60HP460VOLTS3PH,SE#146085
RELIANCET56S1005AMOTOR**
所以电流就越大;而电容越大
YASKAWA SERVO MOTOR USAMED-06MC1SR WITH 1326-EYD-1 FEEDBACK (5D)
RELIANCEELECTRICP21S3064ELECTRICMOTORTYPEP7.5HP1755RPM*NO*
Fanuc 30F/2500 AC Servo Motor, A06B- / A06B--R, ,
Mitsubishi HC-UWS72-S4 AC Servo Motor with 30 day
GE FANUC A06B- #7008 RS AC SERVO MOTOR NIB W/ 3 M
GE FANUC A06B-08 AC SERVO MOTOR * NO *
RelianceElectricNuclearServiceMotor15HP@3330RPM,22.5HP@3490RPM460V
Reliance25HP661XL284TFrameMotor(MOT2759)
系统的功率密度大
Mitsubishi HA100CS AC Permanent Magnet Servo Motor
YASKAWA Servo Motor USASEM-10HS22 Hitachi Seiki 1.03 kW 1000 RPM 14.6 Amp Z
REBUILTRELIANCESERVOMOTOR,MOD#1326AB-B515E-21,W/1YEAR
Type DS Motor Circuit Protector 10 amp CHIPPED
Mitsubishi EDM SERVO MOTOR HD20ET-023 W/ TAMAGAWA TS1400N37 CNC HD20ET023
ABB Motorschutzrelais TA25DU-1,8 (1,3-1,8A), Nr.
!RelianceElectricN-AA|P/N:|ServoMotor
热继电器的常闭触点动作
BaldorRelianceElectricMotorMVMhp
YASKAWA USAREM-A5CE2K 50 W 1.62 KG.CM 3000 R/M AC SERVO MOTOR #2
RELIANCE8C10IMPAKPLUSVSDRIVEVARIABLESPEED3/4.75HPACMOTORNOLENS
FANUC A06B-76 SERVO MOTOR A06B
ABB ASEA BROWN BOVERI MOTOR CONTROL CIRCUIT BOARD SNAT-7780 GIF
MOTOR * IN A *
MITSUBISHI ELECTRIC PERMANENT MAGNET AC SERVO MOTOR MODEL HA 3000
MOTOR BRUSHES LOT OF 8
FUJI ELECTRIC GGN3168A SPINDLE MOTOR
LOT OF 9 MURR ELEKTRONIK 23006 MOTOR SUPPRESSOR 575VAC/7,5kW 23-006
REXROTH 3-PHASE PERMANENT MAGNET MOTOR MKE037B-144-GP0-BUNN *NIB*
外部连接线有无损伤
ABB 3HXD Robot 7th Axis Motor Cable (15
YASKAWA Servo Motor USAFED-09DB10E W/ Encoder utoph-500vb
SANYO DENKI 45BM014HBC14 ABS SUPER SERVO MOTOR FACTORY INDUSTRIAL
Bosch SD-B4.140.020-10.000 Servomotor
FANUC a30/kW AC SERVO MOTOR A06B-
Fanuc A06B-00 AC Servo Motor
Fanuc A06B- #7076
Servo Motor
Repaired By ICR
全部触头都按常态给出
Yaskawa UGCMEM-04-MC56 Servo Cup Motor, 68 V, 1750 RPM,
Filter Set für Hitachi Minibagger ZX 16 Motor Shibaura E673L-C auch einzeln
传统的继电器控制系统中使用了大量的中间继电器、时间继电器
其实质是将交流电动机等效为直流电动机
Rexroth, MHD093B-035-PG0-AA, Permanent Magnet Motor
Fanuc DC Spindelmotor Model 15 = Gleichstrommotor
YOKOGAWA SERVO MOTOR DM1B-015G-1C2A4S2-030-0202 NIB
HONEYWELL 7616BR CRANK ARM AND CLIP ASSEMBLY ELECTRIC MOTOR D507906
ABB 3HAC- TAMAGAWA AC SERVO MOTOR TS1
REXROTH MDD065D-N-060-N2M-095GA0 SERVO MOTOR,
GE FANUC A06B- SERVO MOTOR AMPLIFIER CONTROLLER
Fanuc A06B- AC Servo Motor "Exchange "
NORELIANCEELECTRIC0450AG4CARBONMOTORBRUSH,FASTSHIPPING,G152
FANUC MODEL 5N
DC SERVO MOTOR
Bosch SE-B2.010.060-00.000
Servomotor
Abb Electric Motor , 480v, 60Hz, .65Kw, 1700 Rpm, .75Hp
FANUC A06B- MODEL 5 DC SERVO MOTOR
HF-KP13B MITSUBISHI SERVO MOTOR ORIGINAL
Bosch Bürstenloser Servomotor Permanenterregt SD.B3.050.030-04000
ωT+ψ-------相位角
YASKAWA ELECTRIC SERVO MOTOR 3.5A 2000RPM USAPEM-07YR21
PARKER SMN0822V5D-KPSN SERVO MOTOR SMN0822V5DKPSN
但往往初相也是不同的
转轴带着凸轮随之转动
Honeywell No. H11002 Vacuum Filter Bissell 7 & 9 Post Motor Vacuum Filter NIP
FANUC AC SERVO MOTOR MODEL 20S
HONEYWELL Q605D1069 Mod Motor Bracket And Damper Linkage Assembly
Indramat Reco RMA12.2-16-DC024-200 Output Module Interbus PLC card bosch rexroth
Fanuc DC Servo Motor 10M A06B- (2000M)_A06B_AO6B-
MITSUBISHI AC SERVO MOTOR HA 40C-S W/ TAMAGAWA TYPE FA-CODER OSP5K-6-12-108
ElectroCraftE-010ServoMotorElectricRelianceE-010
PARKER MPM662BSF7G1N
SERVO MOTOR REV A .12KW/.16HP 2500 RPM (2D2)
用字母F表示
RELIANCEELECTRICXE1PH1HP1740RPMMOTORP56XR936G1
RELIANCE1.5HPRPMIIIDC-MOTORW/GEAR1750RPM180V#617210RATIO2.2:1REBUILT
RelianceElectricMotor930052
Mitsubishi MHMA402P1G AC Servo Motor Matsushita Electric
REXROTH PPC-R02.2N-N-V2-NN-NN-FW CONTROLLER SLAVE MODULE PPCR022NNV2NNNNFW
RELIANCEC56S5324N-GAMOTOR*OUTOF*
REXROTH INDRAMAT 0 608 710 030 / , 3P39/ 3 P 39, Druckluftmotor -
并注意经常检查
B0328ATZ40hpRelianceSpindleDriveMotorG60G&LManufacturerRefurbished
ABB SA003-48 3PH 1HP 480V-AC 60HZ 6A SOFT START STARTER AC MOTOR DRIVE D543844
应在PLC的电源模块以及输入/输出模块的电源线上接入噪声滤波器和降低噪音用的变压器等
应等于负载的额定电压
Rexroth Servomotor MSM040B-0300-NN-M0-CC1 --
RELIANCEELECTRIC-TJ-RWMASTERXLGEARMOTOR,RATIO25,
RelianceElectricMotor.17hpW77C3431M-QN90v1725rpm
MITSUBISHI HC-MF-13D-UE Servo Motor
Skid Steer? Drive Motor, 2-Speed? CNR332/X7602, MNR R
Fanuc AC Servo Motor Model 5 _ A06B-73 _ A06B
YASKAWA ELECTRIC USAGED-30A22K AC SERVO MOTOR
GE FANUC A06B- #7000 SERVO MOTOR
将控制电路中的接触器、继电器线圈的通电与断电
RELIANCEELECTRICEELECTRO-CRAFTSERVOMOTOR
Fuji Electric GYS401DC1-SA ZD5 Servomotor
Parker SMN1152Q2F-KPSN Compu Motor Rotary Servo Motor ! NO
WWF12C1-710 Wexco Wiper Motor: (1.5") shaft, 12V (American Bosch) JLG [B2TOP]
ABB ACS103-K75-1 ACS100 MOTOR DRIVE 3* 200,240V 50/60HZ 3.2A
YOKOGAWA REV MOTOR TRM-H9CB60ZLMF AND GEAR 9RL2-DZ60
Yaskawa Electric AC Servo Motor SGMG-20A2ABS #74911
这项既可以是对设备维护人员的要求
Yaskawa Motoman Ac Servo Motor SGMPH 30a2a-yra1
Fanuc AC Servo Motor Model 20S, Type A06B-00,OFF G&L CNC LATHE
逆变器是将直流功率变换为所要求频率的交流功率
外部的开关信号、模拟信号以及各种传感器检测信号作为PLC的输入变量
Fanuc AC Spindle Motor A06B-
GYC152DC1-SA-Fuji Servo Motor In Stock-Free Shipping($600USD)
Reliance5HP830RPM3phaseElectricMotor
FANUC A06B-00 AC3/2000 COLCHESTER SERVO MOTOR, PRICE INC VAT
YASKAWA Servo 8:1 Gear Motor SGMS-50A6AB Micron 34-510-630-4936 size 14
Motor Fanuc
HONEYWELL Y JADE Economizer Systems with Enthalpy with black motor
FANUC 2.3AMP 267HZ 4000RPM
AC SERVO MOTOR A06B-21 103803 *kjs*
在输出处理阶段转存到输出锁存器
.75HPA-CMotorbyRelianceElectricDutyMaster-EasyCleanPlus
RELIANCE ELECTRIC 1326AB-B430E-21 ELECTRO-CRAFT SERVO MOTOR 1326ABB430E21
Motorschutzschalter ABB Typ MS165-42, Bereich 30-42A, Nr.
CINCINNATI MILACRON SERVO MOTOR 1FT5Z GOOD CONDITION
YASKAWA ELECTRIC AC SERVO MOTOR SGMRV-30ANA-YR12
FANUC AC SERVO MOTOR Model a 3/23-B075-R, 127 Volts
RELIANCE1/2HPELECTRICMOTORT56S1004A
并且电控柜的进风口和出风口加装过滤器
RELIANCE15HPRPMVSDRIVEDCMOTOR180VDC1500RPM3?01KL591703-VU
Movinor MM9075C Servo Motor w/Heidenhain ROD 426-500 01 Encoder
电气控制系统是由许多电气元件按照一定要求联接而成的
有很强的功能
RELIANCE1/4HPEXPLOSIONPROOFACMOTORHR561140RPM115/230VOLT1PHASE
MTS (Toshiba) Motion Plus SMR-1-150 brushless servo motor
HONEYWELL MODUTROL MOTOR M604C54DS 24 V VOLT 14 W WATT 50-60 CYCLES
ELMO ABB ROBOTICS SERVO MOTOR MODEL PS 130/6-90-P 3107
MOTOR A06B- No. C93ZF0713
A860- TESTED
GE FANUC MODEL 10 MOTOR A0?B-0501-B??6#707?, 2000RPM
YASKAWA Servo Motor USASEM-02YRW1
GENUINE SERVO MOTOR HC-MF73-EC MITSUBISHI LOCATION M
只有在下一个扫描周期的输入处理阶段才能被读入信息
FANUC MOTOR COVER A290- ~
Abb Ms116 20a Motor Overload
RELIANCEDUTYMASTER7.5HPMOTOR254UFRAME(3540RPM)
RelianceMotor01MAN75RPMX445TSFrame460V163ATEFCEnclosure
Fanuc 6M - Z Axis Servo Motor - A06B-
MITSUBISHI AC SERVO MOTOR OSE5K-6-12-108 HA100CS HA 100CS
Bosch Rexroth 0-608-701-003 Nutrunner Servo Motor 3.1A 230V
为了防止逆变器期间、线路等损坏要停止运转
Mitsubishi Electric HA83C-S Permanent Magnet AC Servo Motor Z 637260 with Tamaga
Yaskawa SGLGW-60A365AW Linear Servo Motor
采用热继电器或者电子热保护(使用电子电路)
1991 BROTHER TC-321 CNC TAPPING CENTER SANYO DENKI SERVO SPINDLE MOTOR
Rexroth Indramat Permanent Magnetmotor MHD 115B-058-PG1-BA Servomotor --
FANUC A06B- AC SERVO MOTOR A06B
MITSUBISHI AC SERVO MOTOR HC-KFS053 NIB
FANUC A06B- SERVO MOTOR 165V 1500RPM ***XLNT***
FANUC A06B- | AC Servo Motor with Pulse Coder A860- **
YASKAWA MOTOMAN SGMP-02AWYR12 AC SERVO MOTOR
Fuji Motor Controller FVR-e11 FVRO-75E11S 2KC
OKK Tool Changer Motor Contorl
ALLEN BRADLEY 1326AB-B2E-11-A5 AC SERVO MOTOR 126109 REFURBISHED (13G)
Fanuc A068-02 AC Servo Motor A
ABB ROBOTICS 1FT-9-Z SERVO MOTOR 3HAA 0001-EE
GE Fanuc Control Motor Amplifier a Series CNC Servo Drive Manual GFZ-65162E/02
Cenco91506HyvacVacuumPumpRelianceElectricMotor3/8"Ports1/3HP115V
DCmotordriveRelianceMinpak3HPchassissn4214
RELIANCEELECTRICT56S1007AMOTORFRLE0056CHP1/2RPM
线圈中通过高频电流
ABB ACH401B01132 + A0DE000 AC Motor Speed Drive ! WOW !
Fanuc Model α12-4000HVis AC Servo Motor A06B- Coder A860-
检查发现对应的PLC输出端口为0
MVM3545DBaldor/RelianceElectricMotor-RPM1HP/.75kW80D230/460
400HPRelianceDCElectricMotor,1750RPM,MC4013ATZFrame,500V,DPFV
Fuji Electric MGA42A002S050C 3-Phase 200W Geared Motor
HC53T-E42 Mitsubishi Servo Motor
RelianceDutyMasterMotorRebuilt500HPRPM
YASKAWA USASEM-02YR32 AC SERVO MOTOR REBUILT BY ICR
Fanuc dc servo motor 20M
Sanyo Denki 68ZBM140HBJ70 ABS Super Servo Motor
现场施工和控制逻辑的设计(包括梯形图和程序设计)可以同时进行
RelianceElectricMotor1/3Hp208-230/460V1.5-1.6A60HZ3PhFB56CFrame1725Rpm
ReliancePowerMatchedRectifiedDCMotor1/2HP1750RPM50/100FieldVDC
MITSUBISHI SJ-7.5 SPINDLE MOTOR ENCODER TAMAGAWA
AU5589 CM14AE0
Servomotor Rexroth Typ MSM020B
FANUC Lüfter FAN MOTOR A901- A90I-
Yaskawa USAGED-09AZZK AC Servo Motor _ USAGED09AZZK Encoder UTOPH-81AVF
R88D-KN01L-ECT
HONEYWELL MODUTROL IV MOTOR TRANSFORMER #198162EA SEE DESC
SGMJV-02ADABC-Yaskawa Servo Motor In
并用来编制用户程序
容抗不等于电压与电流的瞬时值之比
FANUC A06B- AC SERVO MOTOR 1200 RPM (OC253)
Servo Motor 2AD160B-B350A1-BS03-B2V1 Bosch Rexroth 2AD160B-B35OA1-BS0
RbltRelianceElectricDCMotor200HPRPMB506ATZFr1YR
Yaskawa 200W Servopack SGDE-02BP Servo Drive and SGME-02BF12 Servo Motor
Filter Set für Hitachi Minibagger ZX 25 Motor Isuzu 3YE1 auch einzeln
ABB API ELMO 3 HAC 2206 SERVO MOTOR PS 90/6-90-P-LSS-4609 * IN *
FANUC A06B-08 SERVO MOTOR * *
ABB 3HAB3124-1 PS90/6-38-P-LSS-3613 IRB1400 Robot ELMO Servo Motor Axis 1,2 or 3
Hitachi Excavator UH08 Hydrostatic Swing Motor
Fanuc A06B-00 AC Servo Motor
YASKAWA 2.7A 3000RPM AC SERVO MOTOR USAPEM-03CW2X
D129277 Omron R88M-M40012-B AC
Honeywell 951742 motor tachometer - 60 day
Fanuc AC Servo Motor A06B- Encoder A860- Robot Robotic
Sanyo Denki Servo Motor # CN-800T-21 __ CN800T21
尤其是CPU会因"电子迁移"现象的加速而降低PLC的寿命
ABB MS116-6.3 MANUAL MOTOR STARTER * IN A *
Sanyo Denki Servo Motor for Fuji Robot | 68ZBM090HBS70
断开相应的回路
如此周而复始不断循环
HONEYWELL M955D1005 MOTOR 160 DEGREE STROKE 24V (AS PIC) * OUT OF A *
Fuji FRN015F1S-4U 15,7.5HP 460V 3,1Ph In, Out FRENIC-Eco VFD Motor Drive
EMERSON CONTROL TECHNIQUES CFCS-025
SERVO MOTOR FEEDBACK CABLE
BaldorRelianceIndustrialMotorPumpModelACDV70/17T3GCatJMLR
Power Cable for YASKAWA Σ(Sigma)-V series servo motor 200W to 500W
Yaskawa SGMAS-12ABA-TE11 AC Servo Motor TEL -11 PRA Lithius
R88M-G3K020T-S2
Bosch Bürstenloser Servomotor SE-B2.040.060-00.000
再通过按转子磁场定向旋转变换
HITACHI SEIKI HT-15 CNC LATHE SANYO DENKI 20BM060BXP41 SERVO MOTOR NO ENCODER
Honeywell Modutrol Motor .80Amps 50/60Hz 24V 18W M954A1035
GE FANUC 10S A06B-75 AC SERVO MOTOR **
YASKAWA SERVO MOTOR USAREM 02AE2K INDUSTRIAL MADE IN JAPAN ELECTRICAL MOTORS
RELIANCEDUTYMASTERACPUMPMOTOR3/4HP115/230VAC50HZ.#E77RRPM
Rexroth Indramat MDD071B-N-060-N2M-095GA0 Permanent-Magnet-Motor
DCmotordriveRelianceMinpak0.25to0.75HPchassissn016
Fanuc A06B- #7076 Servo Motor
Fanuc α 65/31-B775#7075 Servomotor
变频器通常利用继电器接点或具有继电器接点开关特性的元器件(如晶体管)与上位机连接
器件映象寄存器中所寄存的内容
SC-220,RELIANCE1KA583903-PPDCMOTOR.40HP.RPM.240V.MC3612ATZ.
Rexroth MDD090C-N-040-N2M-110GB1 Servo Motor ! WOW !
DANAHER E34HLH8-LNK-N8-03 1.8 DEGREE STEPPER MOTOR W/ BRAD HARRISON CABLE
RelianceMotorP56X4516M-DA3Ph3/4Hp1725Rpm208-230/460V2.2-2.2/1.160Hz
ABB Motorschutzrelais TA25DU-4.0 (2,8...4A) NEU/OVP
PARKER MPP0922D1E-KPSB SERVO MOTOR
ABB Type DS 25 Amp 3 Pole 480 Volt Circuit Breaker/Motor Circuit Protector
ABB M2QA315L4A
184KW 240 HP 50hz 60hz
ELECTRIC MOTOR 440Y
无论是主电路还是辅助电路
Yaskawa USADED-37-FC33 Servo Motor
SANYO DENKI R301-041EL8 SUPER R DC SERVO MOTOR,,24
Fanuc A06B- AC Servo Motor A06B -
RelianceYorkChillerACMotor221HP445TZFrame460Volt
RELIANCE5.6KWRPMACMOTOR,#1211925,TYPE:DLVOLTS,3PH,REBUILT
ABB 6.4 KW MOTOR 3445 RPM, 440-480 VOLT, M2AA 132 SA ()
Fanuc Servo Motor 3-0F A06B- #0003
PLC采用循环扫描的工作方式
Reliance60HPMotorP28G1083EQuantisGear(B3865)
Danaher Motion Servomotor DBL3M00-S40 -
在一台发电机中
消除低速时定子电阻的影响;将输出电压、电流闭环
RELIANCEDUTYMASTERMOTORB77A8629N-SRMOTOR1.5HP
AUTOMATIONSTORE FUJI Manual Motor Starter 63A Frame 28-40 BM3VHB-040
FANUC A06B- MODEL αM9/3000 RJ3 SERVO MOTOR * SHAFT 2 *'
RelianceElectric1.5HPDCMotor,#T56H1034V-RS,w/SpeedReducer,
Rexroth BS1/T Belt Conveyor EQ1/TE Lift-Transverse Gear Reducer & 34Y6BFPP Motor
FANUC MODEL 10 TYPE A06B-4V 3PH 8 POLE AC SERVO MOTOR
YASKAWA Servo Motor SGMP-15AWYR12 #73577
BaldorRelianceSuperE-100HP1188RPM-3PhaseInductionMotorECP4409T-4
检测出设备运行状况与电气电路工作情况
Rexroth AA2FM160/61W-VSD181-S Hydraulic Axis Motor
Mitsubishi AC Servo Motor HC-MFS43 122V 3000RPM + Shimpo EVSH-15D-400 1:15
8MSA2M.R0-42 NEUGART Getriebe PLE 60 i=3 Servoantrieb #GR-841-8
GE FANUC A06B- MODEL 5S SERVO MOTOR NO ENCODER
Yaskawa SGM-04AW12 AC Servo Motor
Fanuc Model 10S AC Servo Motor, A06B-, ,
BREDELSP/50HOSEPUMP/RELIANCE7.5HPMOTOR#7201022JPUMPSN:6029MOTOR
MAZAK Mitsubishi AC Servo Motor HA 100C-S SN: W TESTED
YASKAWA ELECTRIC A C SERVO MOTOR TYPE USAFED-20F B2X FROM YASNAC MX3
实际上是由三相交流电的一相提供的
(文:程工 &来源:福州卓凯)
联系我们时请一定说明是在模具联盟网上看到的此信息,谢谢!
联系电话:8,欢迎您的来电咨询!
本页网址:
推荐关键词:RTMCAN,
发表评论共有位网友发表了评论
版权与免责声明:
①凡本网注明"来源:模具联盟网"的所有作品,版权均属于模具联盟网,转载请必须注明模具联盟网,违反者本网将追究相关法律责任。
②本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。
③如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
联 系 人:
联系地址:
福建省福州市台江区苍霞街道苍霞新城嘉盛苑2号楼三层308
联系电话:
在线咨询:
企业网址:
公司网站:
联系我时,
告知来自模具联盟网这是个机器人猖狂的时代,请输一下验证码,证明咱是正常人~当前位置: >>
C语言竞赛题目大全
C 语言竞赛题目大全POWERED 问题: 假设在一个 32 位的机器上,需要将某个外设寄存器的第 X 位(最低位为第 0 位,最高位为第 31 位)设置成 0,将第 Y 位开始的 连续三位设置成 110(从高位到低位的顺序),而其它位保持不变。对给定的寄存器值 R,及 X,Y,编程计算更改后的寄存器值 R。 输入的数据仅一行, 包括 R,X,Y, 以逗号&
,&分隔, 为 16 进制表示的 32 位整数, 在 0-31 之间且 Y&=3, R X,Y (Y-X)的绝对值&=3, 保证两次置位不会重合更改后的寄存器值 R(16 进制输出)。例如: Sample Input ,3 输出: ? 1234567c 解题思路: 很简单的位操作,但是需要注意的是 Y 那里是 110,不能直接或上 110,而是先两次 SET,在 CLR。 答案: #include &stdio.h& #define CLR(r, x) #define SET(r, y) r &= ~(1UL && x) //1UL 表示 32 位无符号数,将 r 的 x 位清零。 r |= (1UL && y) //表示将 r 的 y 位置零 BY SYD168 2010 年 5 月 7 日int main() { int r, x, scanf(&%x,%d,%d&, &r, &x, &y); CLR(r,x); //清除 x 位 SET(r,y); //置位 y 位 SET(r,y-1); //置位 y-1 位 CLR(r,y-2); //置位 y-2 位 printf(&%x&, r); return 0; } 第1题 破译密码问题: 据说最早的密码来自于罗马的凯撒大帝。消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第 5 个字母替换 (例如:消息原文中的每个字母 A 都分别替换成字母 F)。而你要获得消息原文,也就是要将这个过程反过来。 密码字母:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z M 原文字母:V W X Y Z A B C D E F G H I J K L M N O P Q R S T U (注意:只有字母会发生替换,其他非字母的字符不变,并且消息原文的所有字母都是大写的。) 输入:最多不超过 100 个数据集组成,每个数据集之间不会有空行,每个数据集由 3 部分组成: 1. 起始行:START 2. 密码消息:由 1 到 200 个字符组成一行,表示凯撒发出的一条消息. 3. 结束行:END 在最后一个数据集之后,是另一行:ENDOFINPUT。 输出: 每个数据集对应一行,是凯撒的原始消息。 ? Sample Input START NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX END START N BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJ 1?END START IFSLJW PSTBX KZQQ BJQQ YMFY HFJXFW NX RTWJ IFSLJWTZX YMFS MJ END ENDOFINPUT Sample Output IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES I WOULD RATHER BE FIRST IN A LITTLE IBERIAN VILLAGE THAN SECOND IN ROME DANGER KNOWS FULL WELL THAT CAESAR IS MORE DANGEROUS THAN HE 解题思路 凯撒编码,判断字符是否是字母,并循环-5 即可,记得要循环哦,非常简单的题目哦 答案: #include &stdio.h& #include &string.h& #include &ctype.h& #define N 202 char str[N]={0}; int main() { char *p; gets(str); while( strcmp(str, &ENDOFINPUT&) != 0 ) { if ( (strcmp(str, &START&) !=0) //当消息不是开始 &&(strcmp(str, &END&) != 0) ) //消息不是结尾 { for(p= *p !='\0'; p++) //对输入的串进行解密 { if( isupper(*p) ) //判断是否为大写字符 *p += *p-5 &'A' ? 26-5: -5; //进行转换,考虑边界问题! } puts(str); } gets(str); } return 0; } //输出字符 //接受下一行//当没遇到消息集的结尾时第2题小孩报数问题有 N 个小孩围成一圈,给他们从 1 开始依次编号,现指定从第 W 个开始报数,报到第 S 个时,该小孩出列,然后从下一个小 孩开始报数,仍是报到 S 个出列,如此重复下去,直到所有的小孩都出列(总人数不足 S 个时将循环报数),求小孩出列的顺序。 或者是求最后出圈人的编号等等类似问题。 输入:第一行输入小孩的人数 N(N&=64),接下来每行输入一个小孩的名字(人名不超过 15 个字符) 最后一行输入 W,S (W & N),用逗号&,&间隔 输出:按人名输出小孩按顺序出列的顺序,每行输出一个人名 ? Sample Input 5 Xiaoming Xiaohua Xiaowang Zhangsan Lisi 2,3 2?Sample Output Zhangsan Xiaohua Xiaoming Xiaowang Lisi 解题思路:(暂空)第3题方阵填数答案:#include &iostream& int a[10][10]; void Fun(int n) { int m = 1,j,i; for(i = 0; i & n/2; i++) { for(j = 0; j & n-i; j++) { if(a[i][j] == 0) a[i][j] = m++; } for(j = i+1; j & n-i; j++) { if(a[j][n-1-i] == 0) a[j][n-1-i] = m++; } for(j = n-i-1; j & j--) { if(a[n-i-1][j] == 0) a[n-i-1][j] = m++; } for(j = n-i-1; j & j--) { if(a[j][i] == 0) 第4题 1. 第五套 a[j][i] = m++; } } if(n%2==1) a[n/2][n/2] = } void main() { int n, i, cin&&n; for(int i = 0; i & i++) { for(int j = 0; j & j++) a[i][j] = 0; } Fun(n); for(i = 0; i & i++) { for(int j = 0; j & j++) { cout && a[i][j] && & &; } cout && } }编写一个程序,让它有以下功能:从键盘上输入一个五位数,对此整数中的五个数值进行从大到小排序,形成一个新的五位数, 32. 3. 4. 5. 6.输出这个整数。 输入年、月、日,输出该日期是该年的第几天。 将学生的学号和成绩存储在数组中,利用循环计算出数组中存储学生的平均成绩,找出高于平均分的学生信息并输出。 输入五个国家的名字,按字母顺序(即按 ASCII 码从小到大的顺序)排列输出。 用指针实现:任意输入 20 个数,将它们按照从大到小的顺序输出。 编写一个简单的通讯录管理系统。通讯录包括:姓名、通讯地址、邮编、联系电话,现编写一个通讯录管理系统,可以对通讯 录进行输入、显示、查找,通讯录保存到一个文件中。 进制转换问题第5题 1.问题描述 实现将 N 进制到 M 进制数的转换(1 & N,M &= 36)。对于 11 到 36 进制数,其基数使用从 A 到 Z 的英文字母(全部为大写)代 替。例如对于 11 进制,其基数 10(十进制)使用&A&表示;对于 36 进制,其基数 35(十进制)使用&Z&表示。被转换的数全部为正 数且小于 (long 型的最大值)。下表为十进制数 100 对应的各进制数: 进制 数值 10 100 11 91 16 64 27 3J 35 2U2. 要求: (1).实现 10 进制数到 M 进制数的转换。(2).程序具有较强的容错能力(例如对错误的输入数字串的处理)。(3). N 进制到 M 进 制数(1 & N,M & 36)的转换(扩展要求,选做)。 3. 输入: 输入文件名为 convert.in,文件内容格式为第一列为被转换数的进制数,第二列为被转换数,第三列为转换后的进制。这三 列内容均为字符串形式。每列之间使用一个空格隔开。 4. 输出: 输出文件名为 convert.out,文件内容为转换后的数。对于一切错误,则输出“error”字符串。 5. 输入输出文件样例: 样例 1 convert.in 10 100 27 样例 2 convert.in 3 140 27 答案: #include &stdio.h& #include &string.h& void ten_to_m(char out[], long int data, int M); int judge(int N, long int data); void convert(char out[], int N, long int data, int M); int main() { int N; int M; char out[100]; /* convert.out error convert.out 3J//N 进制 //M 进制 //N 进制数 //存放 M 进制数 */打开 convert.in 这个文件,从文件中读取用到的数据 FILE *fp = fopen(&/home/student/convert.in&, &r&); if (fp != NULL) { fscanf(fp, &%d%ld%d&, &N, &data, &M); fclose(fp); fp = NULL; } 4/*判断数据 data 有没有错,如果没错则转换为 M 进制,如果错则把 error 写入 out 中 */ if (judge(N, data) == 1) { convert(out, N, data, M); } else { strcpy(out, &error&); } printf(&%s\n&, out);/*把得到的结果写入 convert.out 文件中去 FILE *fw = fopen(&/home/student/convert.out&, &w&); if (fw != NULL) { fprintf(fw, &%s\n&, out); fclose(fw); fw = NULL; } return 0;*/} /* 判断 data 有没有错,先把 data 转换为字符串,然后再进行判断 int judge(int N, long int data) { char b[100]; //data 转换后放入 b 中 ten_to_m(b, data, 10); //相当于 itoa char *s = while (*s != '\0') { if ((*s-'0') &= N) { return 0; } s++; } return 1; } /* N 进制转为 M 进制,先把 N 进制转为十进制,再把十进制转为 M 进制 void convert(char out[], int N, long int data, int M) { int a = n_to_ten(N, data); ten_to_m(out , a, M); } /* 十进制转为 M 进制,当 M=10 时此函数相当于 itoa*/*/*/void ten_to_m(char out[], long int data, int M) { int i = 0; int tmp = /* 把 data 转为字符倒序的放入字符数组 out 中去 5 */while (tmp != 0) { if (tmp%M &= 10) { out[i] = tmp%M - 10 +'A'; } else { out[i] = tmp%M + '0'; } tmp = tmp/M; i++; } len = /* 把字符数组 out 反序 for (i=0; i&len/2; i++) { t = out[i]; out[i] = out[len -i -1]; out[len -i -1] = } out[len] = '\0'; */} /* N 进制转为十进制 */int n_to_ten(int N, long int data) { char a[100]; ten_to_m(a, data, 10); int len = strlen(a); int out = 0; for (i=0; i& i++) { out = out*N + a[i]-'0'; } } 第6题 综合应用//把 data 转为字符串1. 矩阵应用 给定一个整数 N,生成一个 N*N 的矩阵,矩阵中元素取值为 1 至 N2,1 在左上角,其余各数按顺时针方向旋转前进,依次递 增放置。例如,当 N=4 时,矩阵中的内容如下: 3 4 13 14 5 16 15 6 9 8 7 给定 n(3 & n & 50000)个闭区间[ai, bi](1 & i & n, ai,bi 均为非负整数),将这些区间合并为不相交 的闭区间。输入文件的第一行包含一个整数 n,为区间的数目。以下有 n 行,每行各包括两个空格分隔的整数 ai 和 bi,表示一个区 间[ai, bi](0 & ai & bi & 1000000)。计算结果写在标准输出上,各区间按照升序排列输出。每一行包含两个用 空格分开的整数,分别描述一个区间的上下界。例如,对于下列输入数据: 1 12 11 10 265 56 14 10 10 69 8 10 输出为: 14 5 10 2. 字符串处理 从标准输入中读入 N(1&N&10000)行以换行符结束且长度不超过 2048 的字符串, 并在输入结束后输出其中最长 10 行的输入序 号、长度和内容。当有多行长度相等的最长行时,输出最先输入的行的信息。参考【例 2-7】的讨论,分别使用不同的方法实现这 一程序,比较各种方法的运行效率。 3. 汉诺塔问题 写出程序求解 Hanoi 双塔问题。 从标准输入上读入正整数 n(n & 12), 在标准输出上输出盘子的移动动作。 盘子的尺寸由 1 到 n, 输出数据格式为: move &盘子编号& from &原位置& to &新位置& 其中&盘子编号&为&d&a 或&d&b,其中&d&是一个小于等于 n 的正整数,在初始状态下尺寸相同的盘子中 a 盘在 b 盘之上, &原位置&和&新位置&均为字母 ABC 中的一个。例如,移动序列的第一个动作可能是 move 1a from A to C。 4. 表达式问题 从标准输入上读入一个由数字和四则运算符组成的后缀表达式,将其转换为中缀表达式。后缀表达式中的运算符不超过 15 个, 数字可以是整数,也可以是带有小数部分的浮点数,数字和运算符之间由空格分隔。转换后的中缀表达式中不应出现不必要的括号 和空格,且转换前后各运算数的出现顺序不变。例如,对于后缀表达式: 4 7 输出 2.1 5 + * 7.1 9 /(4-7)*(2.1+5)/(7.1-9) 有大、中、小三个酒桶,分别能装 A 斤、B 斤和 C 斤酒,其中 A、B、C 均为整数,A=B+C,B&C&0,且 A 为偶数。现在大桶 装满了酒,另外两个桶都空着。写程序求解用这三个桶将酒平分成为两份的操作序列。当无解时输出字符串 “No”。 5. 文件处理 读入一个不超过
个字符的正文文件,统计其中所有由字母组成的单词及其所在的行号。文件中各个单词之间以空白 符或标点分隔,区分大小写。按单词的字典序在标准输出上输出统计结果,输出格式为&word&: &h1& &h2& … &hn&,每个单词 一行,其中&word&是单词,&hn&是行号。行号之间由空格分隔,按升序排列,不得重复,即当一个单词在一行出现多次时,只输 出该行号一次。 6. 路径处理 写一个程序, 列出环境变量 PATH 中包含的所有目录的路径名。 注意, Unix/Linux 上 PATH 中各个路径名之间的分隔符与 Windows 上的不同。使用条件编译,使你的程序可以适用于这两种系统 第7题 1. 第八套百度语言翻译机百度的工程师们是非常注重效率的,在长期的开发与测试过程中,他们逐渐创造了一套独特的缩略语。他们在平时的交谈、会 议,甚至在各种技术文档中都会大量运用。 为了让新员工可以更快地适应百度的文化,更好地阅读公司的技术文档,人力资源部决定开发一套专用的翻译系统,把相关文 档中的缩略语和专有名词翻译成日常语言。 输入要求: 输入数据包含三部分: 1. 第一行包含一个整数 N(N&=10000),表示总共有多少个缩略语的词条; 2. 紧接着有 N 行的输入,每行包含两个字符串,以空格隔开。第一个字符串为缩略语(仅包含大写英文字符,长度不超过 10 字节),第二个字符串为日常语言(不包含空格,长度不超过 255 字节); 3. 从第 N+2 开始到输入结束为包含缩略语的相关文档(总长度不超过 1000000 个字节)。例: 6 PS 门户搜索部 NLP 自然语言处理 7PM 产品市场部 HR 人力资源部 PMD 产品推广部 MD 市场发展部 百度的部门包括 PS,PM,HR,PMD,MD 等等,其中 PS 还包括 NLP 小组。 样例:in.txt 输出要求: 输出将缩略语转换成日常语言后的文档。(将缩略语转换成日常语言,其他字符保留原样)。例: 百度的部门包括门户搜索部,产品市场部,人力资源部,产品推广部,市场发展部等等,其中门户搜索部还包括自然语言处理 小组。 样例:out.txt 2. 饭团的烦恼 “午餐饭团”是百度内部参与人数最多的民间组织。同一个部门的、同一所大学的、同一年出生的、使用同一种型号电脑的员工 们总是以各种理由组织各种长期的、临时的饭团。 参加饭团,不仅可以以优惠的价格尝到更加丰富的菜式,还可以在吃饭的时候和同事们增进感情。但是,随着百度的员工越来越多, 各个饭团的管理变得繁杂起来。特别是为了照顾员工们越来越挑剔的胃,饭团的点菜负责人的压力也越来越大。现在,这个任务就 交给“百度之星”了,因为,你将要为所有的百度饭团设计一个自动点菜的算法。 饭团点菜的需求如下: 1.经济是我们要考虑的一个因素,既要充分利用百度员工的午餐补助,又不能铺张浪费。因此,我们希望最后的人均费用越接 近 12 元越好。 2.菜式丰富是我们要考虑的另一个因素。为简单起见,我们将各种菜肴的属性归结为荤菜,素菜,辛辣,清淡,并且每个菜只 能点一次。 3.请谨记,百度饭团在各大餐馆享受 8 折优惠。 输入要求: 1.输入数据第一行包含三个整数 N,M,K(0&N&=16,0&M&=N,0&K&=12),分别表示菜单上菜的数目,饭团需要点的菜 的数目,就餐的人数; 2.紧接着 N 行,每行的格式如下: 菜名(长度不超过 20 个字符) 价格(原价,整数)是否荤菜(1 表示是,0 表示否) 是否辛辣(1 表示是,0 表示否); 3.第 N+2 行是 a b c d 四个整数,分别表示需要点的荤菜,素菜,辛辣,清淡菜的数目。例: 322 水煮鱼 30 1 1 口水鸡 18 1 1 清炖豆腐 12 0 0 1111 样例:in.txt 输出要求: 对于每组测试数据,输出数据包含 M+1 行,前 M 行每行包含一个菜名(按菜名在原菜单的顺序排序)。第 M+1 行是人均消费, 结果保留两位小数。例: 口水鸡 清炖豆腐 12.00 样例:out.txt 第8题 比赛规则为了促进各部门员工的交流,百度举办了一场全公司范围内的“拳皇”(百度内部最流行的格斗游戏)友谊赛,负责组织这场比 赛的是百度的超级“拳皇”迷 W.Z。W.Z 不想用传统的淘汰赛或者循环赛的方式,而是自己制定了一个比赛规则。 由于一些员工(比如同部门或者相邻部门员工)平时接触的机会比较多,为了促进不同部门之间的交流,W.Z 希望员工自由分 组。不同组之间的每两个人都会进行一场友谊赛而同一组内的人之间不会打任何比赛。 比如 4 个人,编号为 1~4,如果分为两个组并且 1,2 一个组,3,4 一个组,那么一共需要打四场比赛:1 vs 3,1 vs 4,2 vs 3, 2 vs 4。而如果是 1,2,3 一组,4 单独一组,那么一共需要打三场比赛: 1 vs 4,2 vs 4,3 vs 4。 很快 W.Z 意识到,这样的比赛规则可能会让比赛的场数非常多。W.Z 想知道如果有 N 个人,通过上面这种比赛规则,总比赛场 数有可能为 K 场吗?比如 3 个人,如果只分到一组则不需要比赛,如果分到两组则需要 2 场比赛,如果分为三组则需要 3 场比赛。 但是无论怎么分都不可能恰需要 1 场比赛。 相信作为编程高手的你一定知道该怎么回答这个问题了吧?那么现在请你帮助 W.Z 吧。 输入要求: 8每行为一组数据,包含两个数字 N, K(0&N&=500, K&=0)。例: 20 21 31 32 样例:in.txt 输出要求: 对输入的 N,K 如果 N 个员工通过一定的分组方式可以使比赛场数恰好为 K,则输出&YES&,否则输出&NO&(请全部使用大写字母), 每组数据占一行。例: YES YES NO YES 样例:out.txt 第9题 蝈蝈计分蝈蝈小朋友刚刚学会了 0~9 这十个数字,也跟爸爸妈妈来参加百度每周进行的羽毛球活动。但是他还没有球拍高,于是大人们 叫他记录分数。聪明的蝈蝈发现只要记录连续得分的情况就可以了,比如用“3 2 4”可以表示一方在这一局中连得三分后,输了两分, 接着又连得到四分。可是,后来大人们发现蝈蝈只会用 0~9 这十个数字,所以当比赛选手得分超过 9 的时候,他会用一个 X 来表示 10 完成记分。但问题是,当记录为“X 3 5”的时候,蝈蝈自己也记不起来是一方连续得到十三分后,再输五分;还是先赢十分输三分 再赢五分。 因为百度内部就要开始进行羽毛球联赛了,要先摸清大家的实力才好分组比赛呢~于是,大人们想知道以前每局的比分是怎样 的,以及谁获得了胜利。要是遇到了根据比赛记录无法确认比赛过程的情况,也要输出相应的提示哦。 需要进一步说明的是,比赛是五局三胜的,每局先获得二十一分的为胜,但是胜方必须领先对手两分或以上,否则必须继续比 赛直到一方超出对手两分为止,比分多的一方获胜。任何一方先获胜三局后就获得最终胜利,比赛也相应的结束。而且蝈蝈保证是 完整的无多余信息的记录了比赛。 输入要求: 1.文件中第一行只有一个整数 M,表示蝈蝈记录了多少场比赛的分数; 2.在接下来的 2M 行里,每场比赛用两行记录,第一行是一个整数 N(N&=1000)表示当前这个记录中有多少个字符,第二行就 是具体的 N 个字符表示记录的分数(相邻字符用空格隔开)。例: 3 23 X 25 XXXX2XXXX 5151551 样例:in.txt 输出要求: 对应每一个分数记录,输出相应的每局分数,每局分数都使用两个整数表示,表示两个选手的得分,中间用&:&分隔开;每组分 数记录间使用一个空行分隔开。如果相应的比赛结果无法预测,以“UNKNOWN”一个单词独占一行表示(请全部使用大写字母)。 例: 21:17 24:22 21:3 UNKNOWN 21:14 20:22 21:23 21:16 21:9 样例:out.txt 第10题 座位调整 9百度办公区里到处摆放着各种各样的零食。百度人力资源部的调研发现,员工如果可以在自己喜欢的美食旁边工作,效率会大 大提高。因此,百度决定进行一次员工座位的大调整。 调整的方法如下: 1.首先将办公区按照各种零食的摆放分成 N 个不同的区域(例如:可乐区,饼干区,牛奶区等等); 2.每个员工对不同的零食区域有不同的喜好程度(喜好程度是 1~100 的整数,喜好程度越大表示该员工越希望被调整到相应 的零食区域); 3.由于每个零食区域可以容纳的员工数量有限,人力资源部希望找到一个最优的调整方案使得总的喜好程度最大。 输入要求: 文件第一行包含两个整数 N,M(N&=1,M&=300)。分别表示 N 个区域和 M 个员工; 第二行是 N 个整数构成的数列 a,其中 a[i]表示第 i 个区域可以容纳的员工数(1&=a[i]&=M,a[1]+a[2]+...+a[N]=M); 紧接着是一个 M*N 的矩阵 P,P(i,j)表示第 i 个员工对第 j 个区域的喜好程度。例: 33 111 100 50 25 100 50 25 100 50 25 样例:in.txt 输出要求: 对于每个测试数据,输出可以达到的最大的喜好程度。例: 175 样例:out.txt 数据解释: 此数据只存在一种安排方法,三个员工分别安置在三个区域。最终的喜好程度为 100+50+25=175 第11题 剪刀石头布N 个小孩正在和你玩一种剪刀石头布游戏(剪刀赢布,布赢石头,石头赢剪刀)。N 个小孩中有一个是裁判,其余小孩分成三 组(不排除某些组没有任何成员的可能性),但是你不知道谁是裁判,也不知道小孩们的分组情况。然后,小孩们开始玩剪刀石头 布游戏,一共玩 M 次,每次任意选择两个小孩进行一轮,你会被告知结果,即两个小孩的胜负情况,然而你不会得知小孩具体出的 是剪刀、石头还是布。已知各组的小孩分别只会出一种手势(因而同一组的两个小孩总会是和局),而裁判则每次都会随便选择出 一种手势,因此没有人会知道裁判到底会出什么。请你在 M 次剪刀石头布游戏结束后,猜猜谁是裁判。如果你能猜出谁是裁判,请 说明最早在第几次游戏结束后你就能够确定谁是裁判。 输入要求: 输入文件包含多组测试数据,每组测试数据第一行为两个整数 N 和 M(1&=N&=500,0&M&=2000),分别为小孩的个数和剪刀 石头布游戏进行的次数。接下来 M 行,每行两个整数且中间以一个符号隔开。两个整数分别为进行游戏的两个小孩各自的编号(为 小于 N 的非负整数)。符号的可能值为“=”、“&”和“&”,分别表示和局、第一个小孩胜和第二个小孩胜三种情况。例: 33 0&1 1&2 2&0 35 0&1 0&1 1&2 1&2 0&2 44 0&1 0&1 2&3 2&3 10 样例:in.txt 输出要求: 1.每组测试数据输出一行,若能猜出谁是裁判,则输出裁判的编号,并输出在第几次游戏结束后就能够确定谁是裁判,小孩的编号 和游戏次数以一个空格隔开; 2.如果无法确定谁是裁判,输出-2;如果发现剪刀石头布游戏的胜负情况不合理(即无论谁是裁判都会出现矛盾),则输出-1。例: 10-2 14 -1 00 第12题 &0& 一个正整数有可能可以被表示为 n(n&=2)个连续正整数之和,如: 15=1+2+3+4+5 15=4+5+6 15=7+8 请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。 输入数据: 一个正整数,以命令行参数的形式提供给程序。 输出数据: 在标准输出上打印出符合题目描述的全部正整数序列,每行一个序列,每个序列都从该序列的最小正整数开始、以从小到大的顺序 打印。如果结果有多个序列,按各序 列的最小正整数的大小从小到大打印各序列。此外,序列不允许重复,序列内的整数用一个空格分隔。如果没有符合要求的序列, 输出“NONE”。 例如,对于 15,其输出结果是:
对于 16,其输出结果是: NONE &1& 重叠区间大小(20 分) 题目描述: 请编写程序,找出下面“输入数据及格式”中所描述的输入数据文件中最大重叠区间的大小。 对一个正整数 n,如果 n 在数据文件中某行的两个正整数(假设为 A 和 B)之间,即 A&=n&=B 或 A&=n&=B,则 n 属于该行; 如果 n 同时属于行 i 和 j,则 i 和 j 有重叠区间;重叠区间的大小是同时属于行 i 和 j 的整数个数。 例如,行(10 20)和(12 25)的重叠区间为[12 20],其大小为 9;行(20 10)和(12 18)的重叠区间为[10 12],其大小为 3;行(20 10)和(20 30)的重叠区间大小为 1。 输入数据: 程 序读入已被命名为 input.txt 的输入数据文本文件,该文件的行数在 1 到 1,000,000 之间,每行有用一个空格分隔的 2 个正整数,这 2 个正整数的 大小次序随机,每个数都在 1 和 2^32-1 之间。(为便于调试,您可下载测试 input.txt 文件,实际运行时我们会使用不同内容的输 入文件。) 输出数据: 在标准输出上打印出输入数据文件中最大重叠区间的大小,如果所有行都没有重叠区间,则输出 0。 评分标准: 程序输出结果必须正确,内存使用必须不超过 256MB,程序的执行时间越快越好。 &2& 题目描述: 请编写程序,根据指定的对应关系,把一个文本中的字符串替换成另外的字符串。 输入数据: 程 序读入已被命名为 text.txt 和 dict.txt 的两个输入数据文本文件,text.txt 为一个包含大量字符串(含中文)的文本,以 whitespace 为分隔符;dict.txt 为表示字符串(s1)与字符串(s2)的对应关系的另一个文本(含中文),大约在 1 万行左右,每行 两个字 符串(即 s1 和 s2),用一个\t 或空格分隔。dict.txt 中各行的 s1 没有排序,并有可能有重复,这时以最后出现的那次 s1 所对应的 s2 为准。 text.txt 和 dict.txt 中的每个字符串都可能包含除 whitespace 之外的任何字符。text.txt 中的字符串必须和 dict.txt 中的某 s1 完全匹配才能被替换。(为便于调试,您可下载测试 text.txt 和 dict.txt 文件,实际运行时我们会使用不同内容的输入文 件。) 输出数据: 11 数与表达式在标准输出上打印 text.txt 被 dict.txt 替换后了的整个文本。 评分标准: 程序输出结果必须正确,内存使用越少越好,程序的执行时间越快越好。 第13题 低频词过滤&1&:低频词过滤(40 分) 题目描述: 请编写程序,从包含大量单词的文本中删除出现次数最少的单词。如果有多个单词都出现最少的次数,则将这些单词都删除。 输入数据: 程序读入已被命名为 corpus.txt 的一个大数据量的文本文件, 该文件包含英文单词和中文单词, 词与词之间以一个或多个 whitespace 分隔。(为便于调试,您可下载测试 corpus.txt 文件,实际运行时我们会使用不同内容的输入文件。) 输出数据: 在标准输出上打印删除了 corpus.txt 中出现次数最少的单词之后的文本(词与词保持原来的顺序,仍以空格分隔)。 评分标准: 程序输出结果必须正确,内存使用越少越好,程序的执行时间越快越好。 题目描述: 一个 Internet 站点集合,可以用如下的方式来描述站点和站点之间的链接引用关系: s 23/45 322/2 4614/ 其中与 s(site)同行和同列的数字都表示站点号,其他每个数字表示一个站点到另一个站点的超文本链接数。如果站点 A 有到另一个 站点 B 的直接链接或间接(指通过一个或多个直接链接)链接,则称站点 A 有到站点 B 的访问关系,或称站点 B 可以被站点 A 访问 到。例如,上面描述了一个有 4 个站点链接关系的站点集合,第一行 / 4 0 3 表示站点 1 到站点 1,2,3,4 的超文本链接数。 请编写程序: 1) 将一个有 N 个站点的集合划分成满足下面所有条件的站点子集(这些子集的 union 组成了该 N 个站点集合): a) 当任一子集中的站点数大于 1 时,该子集内至少存在一个站点有到该子集内所有其他站点的访问关系; b) 当任一子集中的站点数大于 1 时,该子集内的任一站点至少可以被该子集内的某一站点访问到; c) 两个不同子集中的任意两个站点之间不存在任何访问关系。 2) 裁减这些子集内的站点之间现有的链接关系,使得被裁减后的各子集内的站点依然可以满足上述所有条件,同时使得子集内的 站点之间的链接总数相加之和为最小。 假如上面的站点集合是这 N 个站点集合中的一个子集,它满足了条件 a):4 可以访问到 3, 也可以访问到 2 和 1;也满足了条件 b):站点 4 可以被站点 3 访问到,等等。对该站点集合进行裁减使其仍然满足条件 a 和 b,并 使得其链接总数之和为最小的结果为: s 20/00 320/2 4014/ 这里,站点 4 可以访问到站点 3 和 2,站点 4 也可以访问到站点 1(通过站点 3 间接访问);此外,站点 3 可以访问到站点 4;最小 链接总数相加为 2+2+1+4=9。输入数据:程序读入已被命名为 sites.txt 的完全如上所示的 N*N 矩阵的输入数据文本文件,N 不大于 10 万(N 即为行数和列数),输入文件 的每一行的列和列之间用一个\\t 分隔,行和行之间用\\n 分隔。输出数据:按行输出满足题目要求的每个子集内的站点数以及裁减后的最小链接总数之和,数和数之间都以一个空格分隔。如上述子集和最小 链接总数为:1 2 3 4 9 如果输入数据无满足题目要求的子集存在,则输出 NONE。 &2& 题目描述: 一个智能决策系统可以由规则库和事实库两部分组成, 假定规则库的形式为: Ri C1 & C2 & … & Cn-&A 表示在条件 C1,C2,… 和 Cn 都满足的前提下,结论 A 成立(即采取行动 A);Ri 表示这是规则库中的第 i 条规则。事实库则由若干为真的条件(即命题)所 组成。 对一个新的待验证的命题 Q,可使用数据驱动或目标驱动两种推理方式之一,来确认它是否可由某规则库和事实库推出: 1) 数据驱动的推理是指从事实库开始,每次试图发现规则库中某条能满足所有条件的规则,并将其结论作为新的事实加入事实库, 然后重复此过程,直至发现 Q 是一个事实或没有任何新的事实可被发现; 122) 目标驱动的推理是指从目标假设 Q 出发,每次试图发现规则库中某条含该假设的规则,然后将该规则的前提作为子目标,确认 这些子目标是否和事实库中的事实相匹配,如果没有全部匹配,则重复此过程,直至发现新的子目标都为真或不能再验证子目标是 否为真。 例如,一个规则库为: R1 X & B & E -& Y R2 Y & D -& Z R3 A-&X 事实库为: A B C D E 如果想知道命题 Z 是否为真,数据驱动的推理是从 A B C D E 开始,依次匹配规则 R3(得到新事实 X),R1(得到新事实 Y)和 R2, 得到 Z 为真的事实;目标驱动的推理是从假设目标 Z 开始,依次匹配规则 R2(得到新的子目标 Y),R1(得到新的子目标 X)和 R3,得到假设 Z 为真的结论。 请编写程序正确、高效的实现这两种推理方式。 输入数据: 程序需要两个命令行参数: 1) &推理方式&:data|goal,分别表示程序应采用数据驱动的推理或目标驱动的推理; 2) &命题&:如 Z。 此外,程序还需读入已被命名为 rules.txt 的规则库和已被命名为 facts.txt 的事实库。规则库中的规则可能在千量级,按 R1,R2,R3… 依次按行排列的,每行一条规则,每条规则都以 Ri C1 & C2 & … & Cn-&A 的形式表示,Ri 和 C1 之间有 1 个或多个空格,Ci 和&之 间,Cn 和-&之间,以及-&和 A 之间可以有 0 或多个空格。事实库中的各事实之间用 1 个\\n 隔开,每行一个事实。 输出数据: 如果 Z 能被推理为真,则输出: TRUE &推理方式:data 或 goal& &用空格隔开的规则序列:以在所输入的推理方式下,推 出该命题为真的规则被激活的顺序排列& 例如:TRUE goal R2 R1 R3 如果 Z 不能被推理为真,输出: UNCERTAIN &3&题目描述: 八方块移动游戏要求从一个含 8 个数字(用 1-8 表示)的方块以及一个空格方块(用 0 表示)的 3x3 矩阵的起始状态开始,不断移 动该空格方块以使其和相邻的方块互换,直至达到所定义的目标状态。空格方块在中间位置时有上、下、左、右 4 个方向可移动, 在四个角落上有 2 个方向可移动,在其他位置上有 3 个方向可移动。例如,假设一个 3x3 矩阵的初始状态为: 803 214 765 目标状态为: 123 804 765 则一个合法的移动路径为: 803 813 813 013 103 123 2 1 4 =& 2 0 4 =& 0 2 4 =& 8 2 4 =& 8 2 4 =& 8 0 4 765 765 765 765 765 765 另外,在所有可能的从初始状态到目标状态的移动路径中,步数最少的路径被称为最短路径;在上面的例子中,最短路径为 5。如 果不存在从初试状态到目标状态的任何路径,则称该组状态无解。 请设计有效的 (细节请见评分规则) 算法找到从八方块的某初试状态到某目标状态的所有可能路径中的最短路径, 并用 C/C++实现。 输入数据: 程序需读入已被命名为 start.txt 的初始状态和已被命名为 goal.txt 的目标状态,这两个文件都由 9 个数字组成(0 表示空格,1-8 表 示 8 个数字方块),每行 3 个数字,数字之间用空格隔开。 输出数据: 如果输入数据有解,输出一个表示最短路径的非负的整数;如果输入数据无解,输出-1。 自测用例: 如果输入为:start.txt 和 goal.txt,则产生的输出应为: 135 又例,如果用 784 356 102 替换 start.txt 中的内容,则产生的输出应为: 21 第14题 矩阵应用(1).给定一个整数 N,生成一个 N*N 的矩阵,矩阵中元素取值为 1 至 N2,1 在左上角,其余各数按顺时针方向旋转前进,依次 递增放置。例如,当 N=4 时,矩阵中的内容如下: 1 12 11 10 3 4 13 14 5 16 15 6 9 8 7 (2).给定 n(3 & n & 50000)个闭区间[ai, bi](1 & i & n, ai,bi 均为非负整数),将这些区间合并为不 相交的闭区间。输入文件的第一行包含一个整数 n,为区间的数目。以下有 n 行,每行各包括两个空格分隔的整数 ai 和 bi,表示一 个区间[ai, bi](0 & ai & bi & 1000000)。计算结果写在标准输出上,各区间按照升序排列输出。每一行包含两 个用空格分开的整数,分别描述一个区间的上下界。例如,对于下列输入数据: 5 56 14 10 10 69 8 10 输出为: 14 5 10 (3)从标准输入中读入 N(1&N&10000)行以换行符结束且长度不超过 2048 的字符串,并在输入结束后输出其中最长 10 行的输 入序号、长度和内容。当有多行长度相等的最长行时,输出最先输入的行的信息。参考【例 2-7】的讨论,分别使用不同的方法实 现这一程序,比较各种方法的运行效率。 (4).写出程序求解 Hanoi 双塔问题。从标准输入上读入正整数 n(n & 12),在标准输出上输出盘子的移动动作。盘子的尺寸由 1 到 n,输出数据格式为: move &盘子编号& from &原位置& to &新位置& 其中&盘子编号&为&d&a 或&d&b,其中&d&是一个小于等于 n 的正整数,在初始状态下尺寸相同的盘子中 a 盘在 b 盘之上,&原 位置&和&新位置&均为字母 ABC 中的一个。例如,移动序列的第一个动作可能是 move 1a from A to C。 (5).从标准输入上读入一个由数字和四则运算符组成的后缀表达式,将其转换为中缀表达式。后缀表达式中的运算符不超过 15 个,数字可以是整数,也可以是带有小数部分的浮点数,数字和运算符之间由空格分隔。转换后的中缀表达式中不应出现不必要的 括号和空格,且转换前后各运算数的出现顺序不变。例如,对于后缀表达式: 4 7 输出 2.1 5 + * 7.1 9 / 2(4-7)*(2.1+5)/(7.1-9) (6).有大、中、小三个酒桶,分别能装 A 斤、B 斤和 C 斤酒,其中 A、B、C 均为整数,A=B+C,B&C&0,且 A 为偶数。现在 大桶装满了酒,另外两个桶都空着。写程序求解用这三个桶将酒平分成为两份的操作序列。当无解时输出字符串 “No”。 (7) 读入一个不超过
个字符的正文文件,统计其中所有由字母组成的单词及其所在的行号。文件中各个单词之间以 空白符或标点分隔,区分大小写。按单词的字典序在标准输出上输出统计结果,输出格式为&word&: &h1& &h2& … &hn&,每个 单词一行,其中&word&是单词,&hn&是行号。行号之间由空格分隔,按升序排列,不得重复,即当一个单词在一行出现多次时, 只输出该行号一次。 (8) 写一个程序,列出环境变量 PATH 中包含的所有目录的路径名。注意,Unix/Linux 上 PATH 中各个路径名之间的分隔符与 Windows 上的不同。使用条件编译,使你的程序可以适用于这两种系统。 第15题 经典问题1.将7万元投资到A,B,C三项目上, 其利润见下表: 投资额(万元)│ 1 2 3 4 567 14──────┼────────────────────A利润 │0.11 0.13 0.15 0.24 0.24 0.30 0.35 B利润 │0.12 0.16 0.21 0.25 0.25 0.29 0.34 目 C利润 │0.08 0.12 0.20 0.26 0.26 0.30 0.35 如何分配投资额,使获得的利润最大。 2.将真分数分解为埃及分数(分子为 1 的分数称为埃及分数)。 输入一个真分数,请将该分数分解为埃及分数。 如:8/11=1/2+1/5+1/55+1/110 3.在N行N列的数阵中, 数K(1〈=K〈=N)在每行和每列中出现且仅出现一次,这样的数阵叫N阶拉丁方阵。例如下图 就是一个五阶拉丁方阵。编一程序,从键盘输入N值后,打印出所有不同的N阶拉丁方阵,并统计个数。 项 1 4 5 2 3 4 5 1 3 4 5 1 2 4 5 1 2 3 5 1 2 3 4 4.十个小孩围成一圈分糖果,老师分给第一个小孩 10 块,第二个小孩 2 块,第三个小孩 8 块,第四个小孩 22 块,第五个小 孩 16 块,第六个小孩 4 块,第七个小孩 10 块,第八个小孩 6 块,第九个小孩 14 块,第十个小孩 20 块。然后所有的小孩同时将手 中的糖分一半给右边的小孩;糖块数为奇数的人可向老师要一块。问经过这样几次后大家手中的糖的块数一样多?每人各有多少块 糖? 第16题 歌手大赛问题 2 3题目:青年歌手参加歌曲大奖赛,有 10 个评委进行大粪,试编程求这位选手的平均得分。 3 种方法:分别要求使用到排序,数组,函数,指针。 分析:这道题的核心程序是排序,将评委打的 10 个分数利用数组按增序(或降序)排列,计算数组中除了第一个和最后一个分数以 外的数以外的数的平均分答案: #include&stdio.h& double Aver(int p[],int count) //求出结果,p 为整型数组,count 为数组大小 { double result=0; for(int i=0;i&count-1;i++) //排序 for(int j=i;j&j++) { if(p[i]&p[j]) { int temp=p[i]; p[i]=p[j]; p[j]= } } printf(&评委打分按顺序:&); for(int m=0;m&10;m++) //显示排序后结果 printf(&%d &,p[m]); printf(&\n&); for(int k=1;k&count-1;k++) //求出去掉首尾的平均分 result+=p[k]; result/=count-2; } void main() { printf(&请输入 10 组评分:\n&); int p[10]; 15for(i=0;i&10;i++) //输入评分 { printf(&输入评委%d 打分:&,i+1); scanf(&%d&,&p[i]); } double result=Aver(p,10); //计算平均分 printf(&\n 平均分为%5.2f\n&,result); } 第17题 100 个经典 C 语言程序1. 绘制余弦曲线 在屏幕上用“*”显示 0~360 度的余弦函数 cos(x)曲线 *问题分析与算法设计 如果在程序中使用数组,这个问题十分简单。但若规定不能使用数组,问题就变得不容易了。 关键在于余弦曲线在 0~360 度的区间内,一行中要显示两个点,而对一般的显示器来说,只能按行输出,即:输出第一行信息 后,只能向下一行输出,不能再返回到上一行。为了获得本文要求的图形就必须在一行中一次输出两个“ *” 。 为了同时得到余弦函数 cos(x)图形在一行上的两个点,考虑利用 cos(x)的左右对称性。将屏幕的行方向定义为 x,列方向定义 为 y, 0~180 度的图形与 180~360 度的图形是左右对称的, 则 若定义图形的总宽度为 62 列, 计算出 x 行 0~180 度时 y 点的坐标 m, 那么在同一行与之对称的 180~360 度的 y 点的坐标就 应为 62-m。程序中利用反余弦函数 acos 计算坐标(x,y)的对应关系。 使用这种方法编出的程序短小精炼,体现了一定的技巧。 *程序说明与注释 #include&stdio.h& #include&math.h& void main() { int x,m; for(y=1;y&=-1;y-=0.1) /*y 为列方向,值从 1 到-1,步长为 0.1*/ { m=acos(y)*10; /*计算出 y 对应的弧度 m,乘以 10 为图形放大倍数*/ for(x=1;x&m;x++) printf(& &); printf(&*&); /*控制打印左侧的 * 号*/ for(;x&62-m;x++)printf(& &); printf(&*\\n&); /*控制打印同一行中对称的右侧*号*/ } } 2. 2.绘制余弦曲线和直线 在屏幕上显示 0~360 度的 cos(x)曲线与直线 f(x)=45*(y-1)+31 的迭加图形。其中 cos(x)图形用“*”表示,f(x)用“+”表示, 在两个图形相交的点上则用 f(x)图形的符号。 *问题分析与算法设计 本题可以在上题的基础上进行修改。图形迭加的关键是要在分别计算出同一行中两个图形的列方向点坐标后,正确判断相互的 位置关系。为此,可以先判断图形的交点,再分别控制打印两个不同的图形。 *程序注释与说明 #include&stdio.h& #include&math.h& void main() { int x,m,n, for(yy=0;yy&=20;yy++) /*对于第一个 y 坐标进行计算并在一行中打印图形*/ { y=0.1* m=acos(1-y)*10; n=45*(y-1)+31; /*y:屏幕行方向坐标*/ /*m: cos(x)曲线上 y 点对应的屏幕列坐标*/ /*n: 直线上 y 点对应的列坐标*/ 16for(x=0;x&=62;x++) /*x: 屏幕列方向坐标*/ if(x==m&&x==n) printf(&+&); /*直线与 cos(x)相交时打印“+”*/ else if(x==n) printf(&+&); /*打印不相交时的直线图形*/ else if(x==m||x==62-m) printf(&*&); /*打印不相交时的 cos(x)图形*/ else printf(& &); /*其它情况打印空格*/ printf(&\\n&); } } -------------------------------------------------------------------------------3. 绘制圆 在屏幕上用“*”画一个空心的圆 *问题分析与算法设计 打印圆可利用图形的左右对称性。根据圆的方程: R*R=X*X+Y*Y 可以算出圆上每一点行和列的对应关系。 *程序说明与注释 #include&stdio.h& #include&math.h& void main() { int x,m; for(y=10;y&=-10;y--) { m=2.5*sqrt(100-y*y);/*计算行 y 对应的列坐标 m,2.5 是屏幕纵横比调节系数因为屏幕的 行距大于列距,不进行调节显示出来的将是椭圆*/ for(x=1;x&30-m;x++) printf(& &); /*图形左侧空白控制*/ printf(&*&); /*圆的左侧*/ for(;x&30+m;x++) printf(& &); /*图形的空心部分控制*/ printf(&*\\n&); /*圆的右侧*/} } 4. 歌星大奖赛 在歌星大奖赛中,有 10 个评委为参赛的选手打分,分数为 1~100 分。选手最后得分为:去掉一个最高分和一个最低分后其余 8 个分数的平均值。请编写一个程序实现。 *问题分析与算法实现 这个问题的算法十分简单,但是要注意在程序中判断最大、最小值的变量是如何赋值的。 *程序说明与注释 #include&stdio.h& void main() { int integer,i,max,min, max=-32768; min=32767; sum=0;/*先假设当前的最大值 max 为 C 语言整型数的最小值*/ /*先假设当前的最小值 min 为 C 语言整型数的最大值*/ /*将求累加和变量的初值置为 0*/for(i=1;i&=10;i++) { printf(&Input number %d=&,i); scanf(&%d&,&integer); sum+= if(integer&max)max= if(integer&min)min=/*输入评委的评分*/ /*计算总分*/ /*通过比较筛选出其中的最高分*/ /*通过比较筛选出其中的最低分*/} printf(&Canceled max score:%d\\nCanceled min score:%d\\n&,max,min); 17printf(&Average score:%d\\n&,(sum-max-min)/8); } *运行结果/*输出结果*/Input number1=90 Input number2=91 Input number3=93 Input number4=94 Input number5=90 Input number6=99 Input number7=97 Input number8=92 Input number9=91 Input number10=95 Canceled max score:99 Canceled min score:90 Average score:92 *思考题 题目条件不变,但考虑同时对评委评分进行裁判,即在 10 个评委中找出最公平(即评分最接返平均分)和最不公平(即与平均分 的差距最大)的评委,程序应该怎样实现? -------------------------------------------------------------------------------5. 求最大数 问 555555 的约数中最大的三位数是多少? *问题分析与算法设计 根据约数的定义,对于一个整数 N,除去 1 和它自身外,凡能整除 N 的数即为 N 的约数。因此,最简单的方法是用 2 到 N-1 之 间的所有数去除 N,即可求出 N 的全部约数。本题只要求取约数中最大的三位数,则其取值范围可限制在 100 到 999 之间。 *程序说明与注释 #include&stdio.h& void main() { printf(&Please input number:&); scanf(&%ld&,&i); for(j=999;j&=100;j--) if(i%j==0) { printf(&The max factor with 3 digits in %ld is:%d,\\n&,i,j); } } *运行结果 输入:555555 输出:The max factor with 3 digits in 555555 is:777 6. 6.高次方数的尾数 求 13 的 13 次方的最后三位数 *问题分析与算法设计 解本题最直接的方法是:将 13 累乘 13 次方截取最后三位即可。 但是由于计算机所能表示的整数范围有限,用这种“正确”的算法不可能得到正确的结果。事实上,题目仅要求最后三位的值, 完全没有必要求 13 的 13 次方的完整结果。 研究乘法的规律发现:乘积的最后三位的值只与乘数和被乘数的后三位有关,与乘数和被乘数的高位无关。利用这一规律,可 以大大简化程序。 *程序说明与注释 #include&stdio.h& 18void main() { int i,x,y,last=1;/*变量 last 保存求 X 的 Y 次方过程中的部分乘积的后三位*/printf(&Input X and Y(X**Y):&); scanf(&%d**%d&,&x,&y); for(i=1;i&=y;i++) /*X 自乘 Y 次*/ last=last*x%1000; /*将 last 乘 X 后对 1000 取模,即求积的后三位*/ printf(&The last 3 digits of %d**%d is:%d\\n&,x,y,last%1000); /*打印结果*/ } *运行结果 Input X and Y(X**Y):13**13 The last 3 digits of 13**13 is:253 Input X and Y(X**Y):13**20 The last 3 digits of 13**20 is:801 ----------------------------------------------------------------------------------7. 8.借书方案知多少 小明有五本新书,要借给 A,B,C 三位小朋友,若每人每次只能借一本,则可以有多少种不同的借法? *问题分析与算法设计 本问题实际上是一个排列问题,即求从 5 个中取 3 个进行排列的方法的总数。首先对五本书从 1 至 5 进行编号,然后使用穷举 的方法。假设三个人分别借这五本书中的一本,当三个人所借的书的编号都不相同时,就是满足题意的一种借阅方法。 *程序说明与注释 void main() { int a,b,c,count=0; printf(&There are diffrent methods for XM to distribute books to 3 readers:\\n&); for(a=1;a&=5;a++) /*穷举第一个人借 5 本书中的 1 本的全部情况*/ for(b=1;b&=5;b++) /*穷举第二个人借 5 本书中的一本的全部情况*/ for(c=1;a!=b&&c&=5;c++) /*当前两个人借不同的书时,穷举第三个人借 5 本书 中的 1 本的全部情况*/ if(c!=a&&c!=b) /*判断第三人与前两个人借的书是否不同*/ printf(count%8?&%2d:%d,%d,%d &:&%2d:%d,%d,%d\\n /*打印可能的借阅方法*/ } *运行结果 There are diffrent methods for XM to distribute books to 3 readers: 1: 1,2,3 2: 1,2,4 3: 1,2,5 4: 1,3,2 5: 1,3,4 6: 1,3,5 7: 1,4,2 8: 1,4,3 9: 1,4,5 10:1,5,2 11:1,5,3 12:1,5,4 13:2,1,3 14:2,1,4 15:2,1,5 16:2,3,1 17:2,3,4 18:2,3,5 19:2,4,1 20:2,4,3 21:2,4,5 22:2,5,1 23:2,5,3 24:2,5,4 25:3,1,2 26:3,1,4 27:3,1,5 28:3,2,1 29:3,2,4 30:3,2,5 31:3,4,1 32:3,4,2 33:3,4,5 34:3,5,1 35:3,5,2 36:3,5,4 37:4,1,2 38:4,1,3 39:4,1,5 40:4,2,1 41:4,2,3 42:4,2,5 43:4,3,1 44:4,3,2 45:4,3,5 46:4,5,1 47:4,5,2 48:4,5,3 49:5,1,2 50:5,1,3 51:5,1,4 52:5,2,1 53:5,2,3 54:5,2,4 55:5,3,1 56:5,3,2 57:5,3,4 58:5,4,1 59:5,4,2 60:5,4,3 8. 9.杨辉三角形 在屏幕上显示杨辉三角形 19 &,++count,a,b,c); 作者:huang01 发布时间: 17:00:241 1 1 1 3 2 3 1 1 1 1 5 11 4 6 4 1 5 10 10 ......................................*问题分析与算法设计 杨辉三角形中的数,正是(x+y)的 N 次方幂展开式各项的系数。本题作为程序设计中具有代表性的题目,求解的方法很多,这里 仅给出一种。 从杨辉三角形的特点出发,可以总结出: 1)第 N 行有 N+1 个值(设起始行为第 0 行) 2)对于第 N 行的第 J 个值:(N&=2) 当 J=1 或 J=N+1 时:其值为 1 J!=1 且 J!=N+1 时:其值为第 N-1 行的第 J-1 个值与第 N-1 行第 J 个值之和 将这些特点提炼成数学公式可表示为: 1 x=1 或 x=N+1 c(x,y)= c(x-1,y-1)+c(x-1,y) 其它本程序应是根据以上递归的数学表达式编制的。 *程序说明与注释 #include&stdio.h& void main() { int i,j,n=13; printf(&N=&); while(n&12) scanf(&%d&,&n); /*控制输入正确的值以保证屏幕显示的图形正确*/ for(i=0;i&=n;i++) /*控制输出 N 行*/ { for(j-0;j&24-2*i;j++) printf(& &); /*控制输出第 i 行前面的空格*/ for(j=1;j&i+2;j++) printf(&%4d&,c(i,j)); /*输出第 i 行的第 j 个值*/ printf(&\\n&); } } void int c(int x,int y) { if((y==1)||(y==x+1)) return 1; /*若为 x 行的第 1 或第 x+1 列,则输出 1*/ z=c(x-1,y-1)+c(x-1,y); /*否则,其值为前一行中第 y-1 列与第 y 列值之和*/ } ----------------------------------------------------------------------------------9. 10.数制转换 将任一整数转换为二进制形式 20 作者:huang01 发布时间: 17:00:59 /*求杨辉三角形中第 x 行第 y 列的值*/*问题分析与算法设计 将十进制整数转换为二进制的方法很多,这里介绍的实现方法利用了 C 语言能够对位进行操作的特点。对于 C 语言来说,一 个整数在计算机内就是以二进制的形式存储的,所以没有必要再将一个整数经过一系列的运算转换为二进制形式,只要将整数在内 存中的二进制表示输出即可。 *程序说明与注释 #include&stdio.h& void printb(int,int); void main() {printf(&Input number:&); scanf(&%d&,&x); printf(&number of decimal form:%d\\n&,x); printf(& it\'s binary form:&); printb(x,sizeof(int)*8); /*x:整数 sizeof(int):int 型在内存中所占的字节数 sizeof(int)*8:int 型对应的位数*/ putchar(\'\\n\'); } void printb(int x,int n) { if(n&0) { putchar(\'0\'+((unsigned)(x&(1&&(n-1)))&&(n-1))); printb(x,n-1); /*归调用,输出 x 的后 n-1 位*/ } } *运行结果 输入:8 输出: number of decimal form:8 it\'s bunary form:1000 输入:-8 输出:number of decimal form:-8 it\'s binary form:1000 输入:32767 输出:number of decimal form:32767 it\'s binary form:1111 输入:-32768 输出:number of decimal form:-32768 it\'s binary form:0000 输入:128 输出:number of decimal form:128 it\'s binary form:0000 10. 11.打鱼还是晒网/*输出第 n 位*/中国有句俗语叫“三天打鱼两天晒网” 。某人从 1990 年 1 月 1 日起开始“三天打鱼两天晒网” ,问这个人在以后的某一天中是 “打鱼”还是“晒网” 。 *问题分析与算法设计 根据题意可以将解题过程分为三步: 1)计算从 1990 年 1 月 1 日开始至指定日期共有多少天; 2)由于“打鱼”和“晒网”的周期为 5 天,所以将计算出的天数用 5 去除; 3)根据余数判断他是在“打鱼”还是在“晒网” ; 若 余数为 1,2,3,则他是在“打鱼” 否则 是在“晒网” 在这三步中,关键是第一步。求从 1990 年 1 月 1 日至指定日期有多少天,要判断经历年份中是否有闰年,二月为 29 天,平年 21为 28 天。闰年的方法可以用伪语句描述如下: 如果 ((年能被 4 除尽 且 不能被 100 除尽)或 能被 400 除尽) 则 该年是闰年; 否则 不是闰年。 C 语言中判断能否整除可以使用求余运算(即求模) *程序与程序注释 #include&stdio.h& int days(struct date day); struct date{ }; void main() { struct date today, int yearday,year, printf(&Enter year/month/day:&); scanf(&%d%d%d&,&today.year,&today.month,&today.day); /*输入日期*/ term.month=12; /*设置变量的初始值:月*/ term.day=31; /*设置变量的初始值:日*/ for(yearday=0,year=1990;year&today.year++) { term.year= yearday+=days(term); /*计算从 1990 年至指定年的前一年共有多少天*/ } yearday+=days(today); /*加上指定年中到指定日期的天数*/ day=yearday%5; /*求余数*/ if(day&0&&day&4) printf(&he was fishing at that day.\\n&); /*打印结果*/ else printf(&He was sleeping at that day.\\n&); } int days(struct date day) { static int day_tab[2][13]= {{0,31,28,31,30,31,30,31,31,30,31,30,31,},/*平均每月的天数*/{0,31,29,31,30,31,30,31,31,30,31,30,31,}, }; int i, lp=day.year%4==0&&day.year%100!=0||day.year%400==0; /*判定 year 为闰年还是平年,lp=0 为平年,非 0 为闰年*/ for(i=1;i&day.i++) /*计算本年中自 1 月 1 日起的天数*/ day.day+=day_tab[lp]; return day. } *运行结果 Enter year/month/day: He was fishing at day. Enter year/month/day: He was sleeping at day. Enter year/month/day: He was sleeping at day --------------------------------------------------------------------------------作者:huang01 22---发布时间: 17:01:3211.12.抓交通肇事犯一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两 位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同; 丙是数学家,他说:四位的车号刚好是一个整数的平方。 请根据以上线索求出车号。 *问题分析与算法设计 按照题目的要求造出一个前两位数相同、后两位数相同且相互间又不同的整数,然后判断该整数是否是另一个整 数的平方。 *程序与程序注释 #include&stdio.h& #include&math.h& void main() { int i,j,k,c; for(i=1;i&=9;i++) for(j=0;j&=9;j++) if(i!=j) { k=i*1000+i*100+j*10+j; /*计算出可能的整数*/ for(c=31;c*c&k;c++); /*判断该数是否为另一整数的平方*/ if(c*c==k) printf(&Lorry--No. is %d.\\n&,k); /*若是,打印结果*/ } } *运行结果 Lorry _No.is 7744 12. 13.该存多少钱/*i:车号前二位的取值*/ /*j:车号后二位的取值*/ /*判断二位数字是否相异*/假设银行一年整存零取的月息为 0.63%。现在某人手中有一笔钱,他打算在今后的五年中的年底取出 1000 元,到第五年时刚 好取完,请算出他存钱时应存入多少。 *问题分析与算法设计 分析存钱和取钱的过程,可以采用倒推的方法。若第五年年底连本带息要取 1000 元,则要先求出第五年年初银行存款的钱数: 第五年初存款=*0.0063) 依次类推可以求出第四年、第三年......的年初银行存款的钱数: 第四年年初存款=(第五年年初存款+1000)/(1+12*0.0063) 第三年年初存款=(第四年年初存款+1000)/(1+12*0.0063) 第二年年初存款=(第三年年初存款+1000)/(1+12*0.0063) 第一年年初存款=(第二年年初存款+1000)/(1+12*0.0063) 通过以上过程就可以很容易地求出第一年年初要存入多少钱。 *程序与程序注释 #include&stdio.h& void main() { float total=0; for(i=0;i&5;i++) /*i 为年数,取值为 0~4 年*/ total=(total+1000)/(1+0.0063*12); /*累计算出年初存款数额,第五次的计算 结果即为题解*/ printf(&He must save %.2f at first.\\n&,total); } *运行结果 He must save 4039.44 at first 13. 14.怎样存钱利最大 23假设银行整存整取存款不同期限的月息利率分别为: 0.63% 期限=1 年 0.66% 期限=2 年 0.69% 期限=3 年 0.75% 期限=5 年 0.84% 期限=8 年 利息=本金*月息利率*12*存款年限。 现在某人手中有 2000 元钱,请通过计算选择一种存钱方案,使得钱存入银行 20 年后得到的利息最多(假定银行对超过存款期 限的那一部分时间不付利息)。 *问题分析与算法 为了得到最多的利息,存入银行的钱应在到期时马上取出来,然后立刻将原来的本金和利息加起来再作为新的本金存入银行, 这样不断地滚动直到满 20 年为止,由于存款的利率不同,所以不同的存款方法(年限)存 20 年得到的利息是不一样的。 分析题意,设 2000 元存 20 年,其中 1 年存 i1 次,2 年存 i2 次,3 年存 i3 次,5 年存 i5 次,8 年存 i8 次,则到期时存款人应 得到的本利合计为: 2000*(1+rate1)i1*(1+rate2)i2*(1+rate3)i3*(1+rate5)i5*(1+rate8)i8 其中 rateN 为对应存款年限的利率。根据题意还可得到以下限制条件: 0&=i8&=2 0&=i5&=(20-8*i8)/5 0&=i3&=(20-8*i8-5*i5)/3 0&=i2&=(20-8*i8-5*i5-3*i3)/2 0&=i1=20-8*i8-5*i5-3*i3-2*i2 可以用穷举法穷举所有的 i8、i5、i3、i2 和 i1 的组合,代入求本利的公式计算出最大值,就是最佳存款方案。 *程序与程序注释 #include&stdio.h& #include&math.h& void main() { int i8,i5,i3,i2,i1,n8,n5,n3,n2,n1; float max=0, for(i8=0;i8&3;i8++) /*穷举所有可能的存款方式*/ for(i5=0;i5&=(20-8*i8)/5;i5++) for(i3=0;i3&=(20-8*i8-5*i5)/3;i3++) for(i2=0;i2&=(20-8*i8-5*i5-3*i3)/2;i2++) { i1=20-8*i8-5*i5-3*i3-2*i2; term=2000.0*pow((double)(1+0.0063*12),(double)i1) *pow((double)(1+2*0.0063*12),(double)i2) *pow((double)(1+3*0.0069*12),(double)i3) *pow((double)(1+5*0.0075*12),(double)i5) *pow((double)(1+8*0.0084*12),(double)i8); /*计算到期时的本利合计*/ if(term&max) { max=n1=i1;n2=i2;n3=i3;n5=i5;n8=i8; } } printf(&For maxinum profit,he should so save his money in a bank:\\n&); printf(& made fixed deposit for 8 year: %d times\\n&,n8); printf(& made fixed deposit for 5 year: %d times\\n&,n5); printf(& made fixed deposit for 3 year: %d times\\n&,n3); printf(& made fixed deposit for 2 year: %d times\\n&,n2); printf(& made fixed deposit for 1 year: %d times\\n&,n1); printf(& Toal: %.2f\\n&,max); /*输出存款方式*/ } *运行结果 For maxinum profit,he should so save his money in a bank: 24made made made made madedeposit for 8 year: 0times deposit for 5 year: 4times deposit for 3 year: 0times deposit for 2 year: 0times deposit for 1 year: 0times Total:8841.01 可见最佳的存款方案为连续四次存 5 年期。fixed fixed fixed fixed fixed*思考题 某单位对职工出售住房,每套为 2 万元。买房付款的方法是: 一次交清,优惠 20% 从第一年开始,每年年初分期付款: 5 年交清,优惠 50%; 10 年交清,优惠 10%; 20 年交清,没有优惠。 现在有人手中正好有 2 万元, 若假定在今后 20 年中物价和银行利率均保持不变, 问他应当选择哪种付款方式可以使应付的钱最 少? ----------------------------------------------------------------------------------14. 15.捕鱼和分鱼 作者:huang01 发布时间: 17:01:57A、B、C、D、E 五个人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。日上三杆,A 第一个醒来, 他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。B 第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉,保持走自己的 一份。C、D、E 依次醒来,也按同样的方法拿走鱼。问他们合伙至少捕了多少条鱼? *问题分析与算法设计 根据题意,总计将所有的鱼进行了五次平均分配,每次分配时的策略是相同的,即扔掉一条鱼后剩下的鱼正好分成五份,然后 拿走自己的一份,余下其它的四份。 假定鱼的总数为 X,则 X 可以按照题目的要求进行五次分配:X-1 后可被 5 整除,余下的鱼为 4*(X-1)、5。若 X 满足上述要求, 则 X 就是题目的解。 *程序与程序注释 #include&stdio.h& void main() { int n,i,x,flag=1; for(n=6;n++) { for(x=n,i=1&&i&=5;i++) if((x-1)%5==0) x=4*(x-1)/5; else flag=0; /*若不能分配则置标记 falg=0 退出分配过程*/ if(flag) /*若分配过程正常结束则找到结果退出试探的过程*/ else flag=1; /*否则继续试探下一个数*/ } printf(&Total number of fish catched=%d\\n&,n); } *运行结果 Total number of fish catched = 3121 *问题的进一步讨论 程序采用试探法,试探的初值为 6,每次试探的步长为 1。这是过分保守的做法。可以在进一步分析题目的基础上修改此值,增 大试探的步长值,以减少试探次数。 *思考题 25 /*输出结果*//*flag:控制标记*/ /*采用试探的方法。令试探值 n 逐步加大*/请使用其它的方法求解本题 15. 16.出售金鱼买卖提将养的一缸金鱼分五次出售系统上一次卖出全部的一半加二分之一条;第二次卖出余下的三分之一加三分之一条;第三 次卖出余下的四分之一加四分之一条;第四次卖出余下的五分之一加五分之一条;最后卖出余下的 11 条。问原来的鱼缸中共有几条 金鱼? *题目分析与算法设计 题目中所有的鱼是分五次出售的,每次卖出的策略相同;第 j 次卖剩下的(j+1)分之一再加 1/(j+1)条。第五次将第四次余下的 11 条全卖了。 假定第 j 次鱼的总数为 X,则第 j 次留下: x-(x+1)/(j+1) 当第四次出售完毕时,应该剩下 11 条。若 X 满足上述要求,则 X 就是题目的解。 应当注意的是:&(x+1)/(j+1)&应满足整除条件。试探 X 的初值可以从 23 开始,试探的步长为 2,因为 X 的值一定为奇数。 *程序说明与注释 #include&stdio.h& void main() { int i,j,n=0,x; for(i=23;n==0;i+=2) { for(j=1,x=i;j&=4&&x&=11;j++) /*完成出售四次的操作*/ if((x+1)%(j+1)==0) /*若满足整除条件则进行实际的出售操作*/ x-=(x+1)/(j+1); else {x=0;} if(j==5&&x==11) { printf(&There are %d fishes at first.\\n&,i); n=1; } } } *运行结果 There are 59 fishes at first. *思考题 日本著名数学游戏专家中村义作教授提出这样一个问题:父亲将 2520 个桔子分给六个儿子。分完后父亲说: “老大将分给你的 桔子的 1/8 给老二;老二拿到后连同原先的桔子分 1/7 给老三;老三拿到后连同原先的桔子分 1/6 给老四;老四拿到后连同原先的 桔子分 1/5 给老五;老五拿到后连同原先的桔子分 1/4 给老六;老六拿到后连同原先的桔子分 1/3 给老大” 。结果大家手中的桔子正 好一样多。问六兄弟原来手中各有多少桔子? /*输出结果*/ /*控制退出试探过程*/ /*否则停止计算过程*/ /*若第四次余下 11 条则满足题意*//*n 为标志变量*/ /*控制试探的步长和过程*/16.1.7 分数四则运算对输入的两个分数进行+、-、*、/四则运算,输出分数结果。 算法分析如下: 对分数 b/a 与 d/c,不管哪一种运算,其运算结果均为 y/x 形式。对结果 y/x 进行化简,约去分子分母的公因数:试用 i(i=1,...,y) 对 y,x 进行试商,若能同时整除 y,x,则 y,x 同时约去公因数 i,最后打印约简的分数。 程序代码如下: #include&stdio.h& void main() { long int a,b,c,d,i,x,y,z; printf(&两分数 b/a,d/c 作+,-,*,/四则运算,结果为分数。\\n&); printf(&请输入分数运算式。\\n&); scanf(&%ld/%ld%c%ld/%ld&,&b,&a,&op,&d,&c); 26if(a==0||c==0) {printf(&分母为 0 输入错误!&);exit(0);} if(op==\'+\'){y=b*c+d*a;x=a*c;} /*运算结果均为 y/x*/ if(op==\'-\'){y=b*c-d*a,x=a*c;} if(op==\&