联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> Python编程Python编程

日期:2024-04-01 08:07

Lab 1

Byungjoo Lee

Yonsei University

AIC2100 AI Programming with Python

Lab 1 AIC2100

2

You must follow the specification thorougly!

• Any typos (including whitespace and linebreak) will result in a point deduction.

• If you’re asked to write the comment or docstring, you must add them.

• If some Python libraries are prohibited, importing them will result in 0 points.

• Depending on the lab content, additional rules can be added.

• Please read the specification document carefully and submit your code.

• We won't accept appeals for point deductions based on misinterpreting the lab specification

documentation.

• If any specification is unclear, please post your question on the Q&A board.

Lab 1 AIC2100

3

Please refer to the guidelines noted in previous labs. They remain applicable for this and

subsequent labs.

Any updates in guidelines will be announced again.

Coding guideline

Lab 1 AIC2100

4

Notation

• To clearly instruct the lab specifications, (1) we use “˽” to depict a whitespace (blank)

character and (2) “¤” for a “\n” (newline) character.

• Underlined text refers to the user input (will be demonstrated again in a further lab).

• New notations will be demonstrated additionally on there first mention.

Lab 1 AIC2100

5

One important note about automated archiving

• In lab0, the automated archive code used the incorrect folder name format “{student_id}”.

• It should have been “lab{X}_{student_id}”. (Sorry)

• Don’t worry, we did not deduct your point with this since it is our mistake.

• In the slides explaning the automated archive code (ap_lab0.pdf p.15-16), we specified the

wrong format, while in the slide explaning manual archiving (p. 17), we specified the correct

format.

• We revised the code and update it to LearnUs, even though it is outdated.

• TL;DR

• If you want to use automated archiving, just use our provided code. You don’t need to

revise it on your own.

• If you manually archived in Lab 0, “lab{X}_{student_id}” foldername is correct.

Lab 1 AIC2100

6

Problem 1

Write a program that allows the user to enter any integer base and integer exponent, and displays

the value of the base raised to that exponent. Your program should work as shown below.

Note 1. You do not have to consider faulty input. More specifically, we will test your program for

integer inputs only.

Note 2. The integer base and exponent will be non-negative.

This program needs to ask two times for input from the user. The input prompt with the second

input() command depends on the input from the first input() command. This is highlighted in the

following example:

What˽base?˽10¤

What˽power˽of˽10?˽4¤

10˽to˽the˽power˽of˽4˽is˽10000¤

Lab 1 AIC2100

7

Problem 1

Here are some examples.

What˽base?˽0¤

What˽power˽of˽0?˽5¤

0˽to˽the˽power˽of˽5˽is˽0¤

What˽base?˽2¤

What˽power˽of˽2?˽10¤

2˽to˽the˽power˽of˽10˽is˽1024¤

What˽base?˽5¤

What˽power˽of˽5?˽0¤

5˽to˽the˽power˽of˽0˽is˽1¤

What˽base?˽-25¤

What˽power˽of˽-25?˽3.7¤

You don’t need to consider non-integer inputs.

Lab 1 AIC2100

8

Problem 1

FAQ

Q. What is 0

0?

A. Mathematically, it converges to 1 and Python will output 1 too.

Lab 1 AIC2100

9

Problem 2

Write a program that allows the user to enter a base integer and a four-digit number, and displays

its value in base 10. Each digit should be entered one per line, starting with the leftmost digit, as

shown below. This program also needs to ask several times for input from the user. The output

depends on the input from input() command. This is highlighted in the following example:

Enter˽the˽base˽integer:˽2¤

Enter˽leftmost˽digit:˽1¤

Enter˽the˽next˽digit:˽0¤

Enter˽the˽next˽digit:˽0¤

Enter˽the˽last˽digit:˽1¤

Your˽input˽is˽1001˽in˽base˽2¤

The˽value˽is˽9˽in˽base˽10¤

Example 1

Enter˽the˽base˽integer:˽5¤

Enter˽leftmost˽digit:˽0¤

Enter˽the˽next˽digit:˽3¤

Enter˽the˽next˽digit:˽4¤

Enter˽the˽last˽digit:˽2¤

Your˽input˽is˽0342˽in˽base˽5¤

The˽value˽is˽97˽in˽base˽10¤

Example 2

Lab 1 AIC2100

10

Problem 2

Note 1. You can assume that the base integer is integer from 2 to 10 and four-digit numbers are

non-negative integers.

Note 2. You do not have to consider faulty inputs. There are two cases.

- Invalid base integer input (non-integer or out-of-range)

- Invalid four-digit number (non-integer or exceeding base integer)

Note 3. You don’t need to omit starting zeros when printing your input digit numbers (e.g., if your

input is 0011, then print 0011, not 11). See example 2 in the previous slide.

Lab 1 AIC2100

11

Problem 3

Write a program in which the user can enter any number of positive and negative integer values,

that displays the number of positive values entered and their summation, as well as the negative

values. Your program should work in following conditions.

1. Exclude all numbers that aboslute value is greater than 100 (i.e., 𝑥 > 100).

2. Your program should stop taking the user input and print the results when 0 is entered.

3. The format of printed output differs by whether the number of entered positive/negative integer

is 0 or not.

4. You don’t need to consider faulty inputs (non-integer or -0).

Hint. You can use sum() function.

See the examples on the next slides.

Lab 1 AIC2100

12

Problem 3

Your˽number:˽5¤

Your˽number:˽-32¤

Your˽number:˽105¤

Your˽number:˽31¤

Your˽number:˽-52¤

Your˽number:˽-25234¤

Your˽number:˽0¤

There˽are˽2˽positive˽integer(s)˽and˽the˽sum˽is˽36¤

There˽are˽2˽negative˽integer(s)˽and˽the˽sum˽is˽-84¤

Example 1 – Normal case

Lab 1 AIC2100

13

Problem 3

Your˽number:˽5¤

Your˽number:˽-1002¤

Your˽number:˽15¤

Your˽number:˽31¤

Your˽number:˽0¤

There˽are˽3˽positive˽integer(s)˽and˽the˽sum˽is˽51¤

No˽negative˽integer˽entered¤

Example 2 – Empty negative integer list

Lab 1 AIC2100

14

Problem 3

Your˽number:˽-22¤

Your˽number:˽12345¤

Your˽number:˽-99¤

Your˽number:˽-6¤

Your˽number:˽0¤

No˽positive˽integer˽entered¤

There˽are˽3˽negative˽integer(s)˽and˽the˽sum˽is˽-127¤

Example 3 – Empty positive integer list

Lab 1 AIC2100

15

Problem 3

Your˽number:˽0¤

No˽positive˽integer˽entered¤

No˽negative˽integer˽entered¤

Example 4 – Immediate termination

Lab 1 AIC2100

16

Problem 4

Write a program that calculates the least common multiple (LCM, 최소공배수) of two input positive

integer.

Note 1. You can assume that the input integers are always greater than 1.

Note 2. You do not have to consider faulty inputs.

Note 3. You are not allowed to use any library (including standard one)

Hint 1. Find the greatest common divisor (GCD, 최대공약수) first.

Hint 2. LCM can be computed as the multiple of two integers divided by their GCD.

To compute GCD, we strongly suggest you to use Euclidean algorithm (유클리드 호제법).

Lab 1 AIC2100

17

Problem 4

Input˽integer˽1:˽3¤

Input˽integer˽2:˽4¤

The˽least˽common˽multiple˽of˽3˽and˽4˽is˽12¤

Input˽integer˽1:˽16¤

Input˽integer˽2:˽36¤

The˽least˽common˽multiple˽of˽16˽and˽36˽is˽144¤

Input˽integer˽1:˽1024¤

Input˽integer˽2:˽395¤

The˽least˽common˽multiple˽of˽1024˽and˽395˽is˽404480¤

Input˽integer˽1:˽72¤

Input˽integer˽2:˽80¤

The˽least˽common˽multiple˽of˽72˽and˽80˽is˽720¤

Lab 1 AIC2100

18

Problem 5

Write a program that displays how many images can be stored on a given size USB drive. The

size of the USB drive is to be entered by the user in gigabytes (GB). The number of images that

can be stored must be calcaulted for GIF, JPEG, PNG, and TIFF image file formats. Follow the

below output format.

There are several notes you should follow in this problem.

Enter˽USB˽size˽(GB):˽1¤

˽11184˽image(s)˽in˽GIF˽format˽can˽be˽stored¤

˽18641˽image(s)˽in˽JPEG˽format˽can˽be˽stored¤

˽˽5965˽image(s)˽in˽PNG˽format˽can˽be˽stored¤

˽˽˽372˽image(s)˽in˽TIFF˽format˽can˽be˽stored¤

Lab 1 AIC2100

19

Problem 5

Assumption 1: All the images have a resolution of 800×600 pixels.

Assumption 2: The compression rate and color depth of each image format is set as below table.

Follow these steps to compute the total number of bytes required to sotre 1 image.

1. Compute number of pixels.

2. Compute number of bytes to represent lossless image (i.e., multiply color depth byte)

3. Compress the image (i.e., divide it by compress rate).

Format Color depth Compression

GIF 1 byte 5:1

JPEG 3 byte 25:1

PNG 3 byte 8:1

TIFF 6 byte 1:1 (n/a)

Lab 1 AIC2100

20

Problem 5

Note 1. Do not report partial images (e.g., 5.5 images). The number of image must be integer.

Note 2. You are allowed to use Python 3 math module (it is standard library) for this problem only.

Note 3. Assume that 1GB is 2

30 bytes.

Note 4. You can assume that USB size input is always positive integer.

Note 4. The number of images should be displayed in 6-digit fieldwidth (see example in slide 18)

Note 5. For larger USB drives, a fieldwidth of 6 may be insufficient to accommodate the number of

images. In such a case it is permissible to exceed the 6-digit fieldwidth (see below example).

Enter˽USB˽size˽(GB):˽64¤

715827˽image(s)˽in˽GIF˽format˽can˽be˽stored¤

1193046˽image(s)˽in˽JPEG˽format˽can˽be˽stored¤

381774˽image(s)˽in˽PNG˽format˽can˽be˽stored¤

˽23860˽image(s)˽in˽TIFF˽format˽can˽be˽stored¤

Lab 1 AIC2100

21

Marking Criteria

• Score is only given to programs that compile and produce the correct output with Python version

3.

• No points for programs that are named wrongly. Please refer to the following slide for the

required file names.

• Points are deducted for programs that produce warnings.

• Please pay particular attention to the requested output format of your programs. Deviating from

the requested output format results in points deductions.

Lab 1 AIC2100

22

Plagiarism

• Plagiarism (Cheating)

– This is an individual assignment. All or some submissions are checked for plagiarism.

• We will not inform you which problems will be checked.

– Once detected, measures will be taken for all students involved in the plagiarism incident

(including the ``source'' of the plagiarized code).

Lab 1 AIC2100

23

• Please prepare the files for the programming problems. The names of the files, their due

dates, and the archive file names are given in the table above.

• Please upload your archive file by the stated due date on LearnUs.

• Please pay attention to file names.

• Putting files into archives has been explained in the Lab 0 specification.

Deliverables, Due Date and Submission

Problem File name Due Archive name

1 lab1_p1.py

Monday

April 8, 2024,

23:59

lab1_<student id>.zip

2 lab1_p2.py

3 lab1_p3.py

4 lab1_p4.py

5 lab1_p5.py


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp