cs-3424: add solution to Quiz 4
This commit is contained in:
parent
35f757da77
commit
2ced33ad92
123
Summer-2024/CS-3424/Quizzes/Quiz-4/Assignment.typ
Normal file
123
Summer-2024/CS-3424/Quizzes/Quiz-4/Assignment.typ
Normal file
@ -0,0 +1,123 @@
|
||||
#set text(font: "FreeSans")
|
||||
#set page(margin: 1cm)
|
||||
|
||||
#show link: item => [
|
||||
#text(blue)[#item]
|
||||
]
|
||||
|
||||
#show raw: set text(font: "Fira Code")
|
||||
#show raw.where(block: false): item => {
|
||||
box(inset: (x: 1pt))[#box(
|
||||
stroke: luma(40%) + .1pt,
|
||||
fill: luma(97%),
|
||||
outset: (y: 3pt, x: 1pt),
|
||||
radius: 2pt,
|
||||
)[#item]]
|
||||
}
|
||||
#show raw.where(block: true): item => {
|
||||
set par(leading: .5em, justify: false)
|
||||
align(center)[
|
||||
#block(
|
||||
outset: 0pt,
|
||||
stroke: luma(40%) + .5pt,
|
||||
fill: luma(97%),
|
||||
radius: 3pt,
|
||||
)[
|
||||
#align(left)[#rect(
|
||||
radius: (
|
||||
top-left: 3pt,
|
||||
bottom-right: 3pt,
|
||||
),
|
||||
inset: .3em,
|
||||
stroke: (
|
||||
bottom: luma(40%) + .5pt,
|
||||
right: luma(40%) + .5pt,
|
||||
),
|
||||
fill: blue.transparentize(95%),
|
||||
)[#text(fill: blue)[#item.lang]]]
|
||||
#v(-1em)
|
||||
#box(inset: 4pt)[#item]
|
||||
]]
|
||||
}
|
||||
|
||||
#let answer(ans) = {
|
||||
set text(size: .95em, style: "italic", fill: rgb(64, 90, 95))
|
||||
block(
|
||||
inset: 4pt,
|
||||
stroke: blue + .5pt,
|
||||
fill: rgb(0, 149, 255, 5%),
|
||||
radius: 3pt,
|
||||
)[#for child in ans.fields().children {
|
||||
if child.func() == raw {
|
||||
text(fill: black)[#child]
|
||||
} else {
|
||||
child
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
#align(center)[#text(size: 1.3em)[= CS 3424 Quiz - Week 5]]
|
||||
#align(center)[
|
||||
#("Price Hiller", "zfp106", "Quiz 4", "CS 3424").join(" ⋄ ")
|
||||
#v(-.5em)
|
||||
#text(size: 0.8em)[#block(
|
||||
inset: 4pt,
|
||||
radius: 1pt,
|
||||
stroke: luma(40%) + .2pt,
|
||||
width: 40%,
|
||||
fill: luma(97%),
|
||||
)[#par(leading: .4em)[If you are interested in viewing the source code of this document, you can do so
|
||||
by clicking
|
||||
#link(
|
||||
"https://git.orion-technologies.io/Price/college/src/branch/Development/Summer-2024/CS-3424/Quizzes/Quiz-4/Assignment.typ",
|
||||
"here.",
|
||||
)]]]
|
||||
#v(-.5em)
|
||||
#line(length: 100%, stroke: (dash: "densely-dotted"))
|
||||
#v(-.5em)
|
||||
]
|
||||
|
||||
1. Create a ```bash sed``` script which makes all comments consistent. Comment lines will begin with either "\//" or "\#" and may have leading spaces or tabs. Replace these instances with "\//" followed by a space and the rest of the original line (the comment itself). Also remove any lines beginning with "%". Include the command to run the script for a file named `file1.php` (contents below) and print output to `file1Clean.php`.
|
||||
#align(center)[
|
||||
```php
|
||||
// file1.php
|
||||
// Week 4
|
||||
// Quiz
|
||||
<?php
|
||||
# print something
|
||||
echo “hello world”;
|
||||
# close php tag
|
||||
?>
|
||||
% this isn’t a correct comment
|
||||
```
|
||||
]
|
||||
|
||||
#answer[
|
||||
I made two assumptions about the desired output:
|
||||
1. The assignment wants the leading spaces or tabs removed from the comment line
|
||||
2. The assignment wants lines that have a comment symbol and no spaces after the symbol to also be supported
|
||||
|
||||
The script below assumes it will be run via `sed -f <sed-script-here> file1.php`.
|
||||
```sed
|
||||
s/^\s*\(#\|\/\/\)\s*\(.*\)$/\/\/ \2/g
|
||||
/^%/d
|
||||
w file1Clean.php
|
||||
```
|
||||
|
||||
// #figure(
|
||||
// image("assets/script-in-action.png", height: 40%),
|
||||
// caption: [],
|
||||
// ) <fig-script-in-action>
|
||||
#figure(
|
||||
box(clip: true, radius: 4pt)[#image(
|
||||
"assets/script-in-action.png",
|
||||
height: 40%,
|
||||
fit: "contain",
|
||||
alt: "",
|
||||
)],
|
||||
caption: [
|
||||
Image of the provided ```bash sed``` script being ran and showing the output it wrote to `file1Clean.php`. Notice that the second ```bash cat``` invocation returns an error showing that `file1Clean.php` doesn't exist just yet. The ```bash sed``` invocation afterwards creates `file1Clean.php`.
|
||||
],
|
||||
)
|
||||
]
|
BIN
Summer-2024/CS-3424/Quizzes/Quiz-4/assets/script-in-action.png
Normal file
BIN
Summer-2024/CS-3424/Quizzes/Quiz-4/assets/script-in-action.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 101 KiB |
Loading…
Reference in New Issue
Block a user