首页 > 编程语言 >CSC1001 编程方法描述

CSC1001 编程方法描述

时间:2023-11-22 18:33:05浏览次数:29  
标签:CSC1001 zip assignment 编程 number locker your card 描述

您应该在.py文件中为每个问题编写代码(请使用问题名称,例如,对于问题1,将其命名为q1.py)。请将所有.py文件打包到 一个.zip文件,使用您的学生ID命名(例如,如果您的学生标识是123456,则文件应命名为123456.zip),然后通过Blackboard提交.zip文件。 还请编写一个文本文件,其中提供了如何为每个代码运行代码的详细信息问题文本文件也应该包含在.zip文件中。请注意,助教可能会要求你解释程序,以确保代码确实是自己编写的。还请注意,我们可以使用检查您的程序是否与同学的代码过于相似黑板CSC1001: Introduction to Computer Science

Programming Methodology
Assignment 2
Assignment description:
This assignment will be worth 8% of the final grade.
You should write your code for each question in a .py file (please name it using
the question name, e.g. for question 1, name it q1.py). Please pack all your .py files into
a single .zip file, name it using your student ID (e.g. if your student ID is 123456, then
the file should be named as 123456.zip), and then submit the .zip file via Blackboard.
Please also write a text file, which provide the details about how to run your code for each
question. The text file should be included in the .zip file as well.
Please note that, the teaching assistant may ask you to explain the meaning of your
program, to ensure that the codes are indeed written by yourself. Please also note that we
may check whether your program is too similar to your fellow students’ code using
Blackboard.
This assignment is due on 5:00PM, 19 November (Sunday). For each day of late submission,
you will lose 10% of your mark in this assignment. If you submit more than three days later
than the deadline, you will receive zero in this assignment.
Question 1 (10% of this assignment):
(Math: approximate the square root) There are several techniques for implementing the
sqrt function in the math module. One such technique is known as the Babylonian
function. It approximates the square root of a number, n, by repeatedly performing a
calculation using the following formula:
nextGuess = (lastGuess + (n / lastGuess)) / 2
When nextGuess and lastGuess are almost identical, nextGuess is the approximated
square root. The initial guess can be any positive value (e.g., 1). This value will be the
starting value for lastGuess. If the difference between nextGuess and lastGuessis less than
a very small number, such as 0.0001, you can claim that nextGuess is the approximated
square root of n. If not, nextGuess becomes lastGuess and the approximation process
continues. Implement the following function that returns the square root of n.
def sqrt(n):
Question 2 (15% of this assignment):
(Emirp) An emirp (prime spelled backward) is a nonpalindromic prime number whose
reversal is also a prime. For example, both 17 and 71 are prime numbers, so 17 and 71 are
emirps. Write a program that displays the first 100 emirps. Display 10 numbers per line
and align the numbers properly, as follows:
Question 3 (15% of this assignment):
(Financial: credit card number validation) Credit card numbers follow certain patterns: It
must have between 13 and 16 digits, and the number must start with:
■ 4 for Visa cards
■ 5 for MasterCard credit cards
■ 37 for American Express cards
■ 6 for Discover cards
In 1954, Hans Luhn of IBM proposed an algorithm for validating credit card numbers. The
algorithm is useful to determine whether a card number is entered correctly or whether
a credit card is scanned correctly by a scanner. Credit card numbers are generated
following this validity check, commonly known as the Luhn check or the Mod 10 check,
which can be described as follows (for illustration, consider the card number
4388576018402626):
1. Double every second digit from right to left. If doubling of a digit results in a
twodigit number, add up the two digits to get a single-digit number.
2. Now add all single-digit numbers from Step 1.
4 + 4 + 8 + 2 + 3 + 1 + 7 + 8 = 37
3. Add all digits in the odd places from right to left in the card number.
6 + 6 + 0 + 8 + 0 + 7 + 8 + 3 = 38
4. Sum the results from Steps 2 and 3.
37 + 38 = 75
5. If the result from Step 4 is divisible by 10, the card number is valid; otherwise, it is
invalid. For example, the number 4388576018402626 is invalid, but the number
4388576018410707 is valid.
Write a program that prompts the user to enter a credit card number as an integer. Display
whether the number is valid or invalid. Design your program to use the following functions:
Question 4 (15% of this assignment):
(Anagrams) Write a function that checks whether two words are anagrams. Two words
are anagrams if they contain the same letters. For example, silent and listen are anagrams.
The header of the function is:
def isAnagram(s1, s2):
(Hint: Obtain two lists for the two strings. Sort the lists and check if two lists are identical.)
Write a test program that prompts the user to enter two strings and, if they are anagrams,
displays is an anagram; otherwise, it displays is not an anagram.
Question 5 (20% of this assignment):
(Game: locker puzzle) A school has 100 lockers and 100 students. All lockers are closed on
the first day of school. As the students enter, the first student, denoted S1, opens every
locker. Then the second student, S2, begins with the second locker, denoted L2, and closes
every other locker. Student S3 begins with the third locker and changes every third locker
(closes it if it was open, and opens it if it was closed). Student S4 begins with locker L4 and
changes every fourth locker. Student S5 starts with L5 and changes every fifth locker, and
so on, until student S100 changes L100.
After all the students have passed through the building and changed the lockers, which
lockers are open? Write a program to find your answer.
(Hint: Use a list of 100 Boolean elements, each of which indicates whether a locker is open
(True) or closed (False). Initially, all lockers are closed.)
Question 6 (25% of this assignment):
(Game: Eight Queens) The classic Eight Queens puzzle is to place eight queens on a
chessboard such that no two queens can attack each other (i.e., no two queens are in the
same row, same column, or same diagonal). There are many possible solutions. Write a
program that displays one such solution. A sample output is shown below:
Note: you cannot just pre-define a solution and display it.
Please use algorithm to display a possible solution.

 

标签:CSC1001,zip,assignment,编程,number,locker,your,card,描述
From: https://www.cnblogs.com/whenjava/p/17850025.html

相关文章

  • 深入Android多线程编程与性能优化
    引言在上一篇的入门篇中,我们对Android线程的基础概念和多线程编程模型有了初步了解。本篇将深入探讨多线程编程技术和性能优化策略,以提升应用的效率和响应性。高级多线程编程技术使用线程池管理线程线程池是一组预先创建的线程,用于执行任务。通过使用线程池,可以避免不断创建和销毁......
  • Spring5学习随笔-基础注解编程
    学习视频:【孙哥说Spring5:从设计模式到基本应用到应用级底层分析,一次深入浅出的Spring全探索。学不会Spring?只因你未遇见孙哥】注解编程-第一章、注解基础概念1.什么是注解编程指的是在类或方法上加入特定的注解(@XXX),完成特定功能的开发.2.为什么要讲解注解编程注解开发......
  • (二十三)C#编程基础复习——Struct结构体
    在C#中,结构体也称为结构类型("structuretype”或“structtype”),它是一种可封装数据和相关功能的值类型,在语法上结构体与类(class)非常相似,它们都可以用来封装数据,并且都可以包含成员属性和成员方法。一、定义结构体要定义一个结构体需要使用struct关键字,每个结构体都可以被看作......
  • 实验2 C语言分支与循环基础应用编程
    实验任务11#include<stdio.h>2#include<stdlib.h>3#include<time.h>45#defineN56#defineN13747#defineN24658intmain(){9intnumber;10inti;11srand(time(0));12for(i=0;i<N;++i){13nu......
  • shell 编程条件语句
    shelltest  测试0为真test-a/etc/fstabecho$?test-e/etc/fstabecho$? -a,-e#测试文件是否存在-a有bug#取反会有变化test+选项对象参数test-f#只看文件-r#是否有读的权限-w#是否有写的权限-x#是否有执行的权限-d#目录-f#文件[-e/etc/fs......
  • 工程中的“面向对象”编程
    工程中的“面向对象”编程在工程处理中,工程师很容易写出碎片的脚本代码,例如处理服务器上的脚本:假设了一些存在的环境变量、目录结构、配置和数据脚本基于这些假设开始做一堆中间处理,并最终得到一些输出数据。即使有了docker,有了k8s,无论是在docker外,还是docker内,还是会有很多......
  • 计算机科学与技术之网络编程 Windows下VC6.0 网络SOCKET编程C语言实现(服务端)
    在VC6.0平台用C语言实现网络SOCKET通信一.在VC6.0平台创建Win32ConsoleApplication工程工程名称自拟(或输入firstSocket)添加新建项文件C++SourceFile 文件名自拟,后缀.c(如firstSocket.c)在firstSocket.c加入头文件#include<winsock2.h>链接动态库#pragmacomment(l......
  • 编程之旅,扬帆起航
    嗨,亲爱的读者!我是顾平安,感谢您点开我的这篇博客。作为一个对技术充满热情的新手,我会在博客园分享我的学习之旅,希望能与你们一起成长。自我介绍我是某机构的前Python讲师,从大学起对计算机科学和编程充满了浓厚的兴趣。我的编程旅程始于2020年,当时我被爬虫技术深深吸引。从那......
  • 零代码编程:用ChatGPT根据视频标题来批量重命名字幕文件
    现在有很多视频文件:还有视频相对应的字幕文件:F:\儿童学习教育\Abadas.适合2岁以上.BBC儿童学习单词的动画\abadas字幕两者的文件标题不一样,现在要将字幕文件的标题全部根据视频文件来重命名。在chatGPT中输入提示词:你是一个Python编程专家,要完成一个根据视频标题来批量重命名字幕文......
  • Spring_202311_21_2 2. AOP面向切面编程
    Spring_202311_21_22. AOP面向切面编程AOP:全称是AspectOrientedProgramming即:面向切面编程。简单的说它就是把我们程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础上,对我们的已有方法进行增强。即当需要扩展功能时,传统方式采用纵向继承方式......